Skip to main content

Full text of "Sinc Link"

See other formats


MAR-APR  '91  VOL.9  NO.2 


INC  LINK 


VOL.9  NO.S 


MAR-APR  '91 


S INC-L  INK  IS  A  PUBLICATION  OF 
THE  TORONTO  T I  HEX-SINCLAIR  USERS 
CLUB  AND  IS  ISSUED  6  TIMES  A 
YEAR.  COPIES  OF  THE  NEWSLETTER 
ARE  91.  SO  EACH  FOR  NON-MEMBERS. 
CLUB  MEMBERS  RECEIVE  FREE  COPIES 
AS  PART  OF  THE  920.00  ANNUAL 
MEMBERSHIP  FEE.  A  NEWSLETTER 
SUBSCRIPTION  ONLY  IS  AVAILABLE 
FOR  912.00. 

NEWSLETTERS  ARE  EXCHANGED  ,  FREE 
OF  CHARGE,  WITH  OTHER 
TIMEX-SINCLAIR  USERS  GROUPS. 

PLEASE  CREDIT  THIS  PUBLICATION 
AND  THE  AUTHOR  IF  YOU  COPY 
MATERIAL. 

THE    CLUB    MEETS    ON     THE  FIRST 
WEDNESDAY    OF    EACH    MONTH  AT 
FOREST       HILLS  COLLEGIATE 
INSTITUTE,   710  EGLINTON  AVE.   W.  , 
TORONTO.   START  TIME:    7s  00  PM. 

SEND  CORRESPONDANCE  TO: 


Attention:       S  INC-L  INK 
TORONTO  TIMEX-SINCLAIR 
CLUB,         14  RICHOME 
SCARBOROUGH,  ONTARIO, 
CANADA  M1K  2Y1 

EXECUTIVE  OFFICERS: 

PRESIDENT: 

TREASURER: 

SECRETARY: 

ACTIVITIES: 

TAPE  LIBRARIAN  ZX81 : 

TAPE  LIBRARIAN  2066: 

TAPE/DISK  LIBRARIAN  QL: 

PAPER  LIBRARIAN: 

NEWSLETTER: 

LIAISON  OFFICER: 

(  Out-of-town  members  ) 


EDITOR 
USERS 
COURT, 


TORONTO  TIMEX-SINCLAIR 
USERS  CLUB 


(Area  Code  416) 
RENE  BRUNEAU  (  331-9749  ) 
BILL  LAWSON  (  444-8772  ) 
GEORGE  CHAMBERS  (  731-7339  ) 
RENE  BRUNEAU  (  331-9749  ) 
LYMAN  PAQUETTE  (  482-4479  ) 
RENATO  ZANNESE  (  635-6536  ) 
HUGH  HOWIE  (  634-4929  ) 
JEFF  TAYLOR  (  244-8583  ) 
JEFF  TAYLOR  (  244-8583  ) 
GEORGE  CHAMBERS.  14  RICHOME  COURT, 
SCARBOROUGH.  ONTARIO.  M1K  2Y1 
(  416-751-7559  ) 


T  I  ME^i-S  I 


I  R  USERS 


SINC-LINK 


Editorial 


An  interesting  little  get-together  was  held  at  Hugh  Howie's 
about  three  weeks  ago.  Most  of  the  in-town  QL  users  and  the  club 
secretary  met  with  Paul  Holmgren  for  an  afternoon  bull  session 
and  general  good  time.  Paul  is  best  known  as  a  U.S.  QUANTA 
librarian,  the  current  guiding  light  for  SNUG  (the  Sinclair 
North  American  User  Group)  and  a  co-owner  of  Mini  Mechanical 
Affinity,  a  parts  and  software  company  serving  the  T/S  (QL 
mostly)  community. 

Everyone  happily  doled  out  loot  to  pick  up  a  variety  of  bits 
like  keyboard  membranes,  ROM  replacement  EPROMS.  clock 
battery-backups  and  even  a  TS1000  ROM  upgrade. 

Then  we  made  Paul  really  work  by  grilling  him  on  the  progress 
of  SNUG  to  date  and  where  he  thought  he  would  like  it  to  go. 
Yes.  he  admitted  that  things  had  not  moved  as  quickly  as  the 
founding  members  had  hoped  and,  yes,  the  newsletter,  SNUG 
Roundup,  had  been  published  at  rather  erratic  intervals.  Paul 
attributed  this  to  a  combination  of  the  problem  of  having  a  club 
executive  spread  across  the  continent,  the  difficulties  of 
communicating  at  long  distance  and  perhaps  a  lack  of  commitment 
on  the  part  of  some  people  once  the  scope  of  the  project  was 
real ized . 

Anyway  all  this  is  about  to  change,  Paul  said,  because  SNUG 
now  has  a  new  newsletter  editor  who  is  determined  to  succeed.  To 
their  credit,  SNUG  has  assembled  a  data  base  on  2068  disk  of 
sources  of  information  on  any  topic  relating  to  Timex-Sinclair . 
Simply  ask  them  to  find  info  on  a  subject  and  they  will  come 
back  with  which  publications  contain  the  data  you  require  and 
then  they  will  find  the  articles  for  you.  It  sounds  impressive. 

The  general  consensus  at  the  meeting  was  that  after  three 
years  of  not  seeing  much  for  our  SNUG  membership  fees,  we  will 
wait  and  see  if  SNUG  will  take  off  before  renewing  our 
membership.  I  think  Paul  felt  a  little  defensive  after  our 
verbal  third  degree. 

Things  then  moved  on  to  a  question  and  answer  period  about 
making  our  QLs  run  better  (not  crash)  and  one  of  the  key  points 
Hugh  mentioned  and  Paul  agreed  with  was  that  the  QL  is  very 
sensitive  to  changes  in  line  voltage.  Something  to  keep  in  mind. 
Paul  was  very  helpful  and  forthcoming  with  answers  to  our 
problems  and  generally  everyone  came  away  feeling  he  had  got 
something  useful  out  the  meeting. 

Thanks  to  Hugh  and  his  wife  for  their  hospitality    and  thanks 
to  Paul  for  making  the  trip  from  Indiana. 

Oops 

Some  of  the  out-of-town  members  received  the  last  issue  of 
Sine-Link  with  what  appeared  to  be  two  covers,  one  after  the 
other  and  the  page  numbers  in  the  wrong  corners.  I  assure  you 
that  it  did  not  go  to  the  printer  like  that  but  since  I  get  it 
printed  for  a  very  reasonable  rate  I  couldn't  ask  them  to  redo 
it.  I  did  however,  leave  out  a  listing  for  Sebastian  Boisvert's 
article.  It  appears  this  issue.  Sorry,  S.B.  Oh  well,  the  best 
laid  plans . . . 

Cont 


SINC-LINK 


Cover 


This  issues'  cover  is  another  Super  Screen  from  Byte  Power's 
The  Companion  suite  of  screens  for  the  The  Print  Factory  desktop 
publisher.  Not  bad  for  the  ol 1  2068  and  a  nine  pin  printer,  eh? 
Thanks  for  the  positive  feedback  on  last  issues'  cover, 
readers . 

That ' s  all  for  now. . . 

J.T. 


"And  the  Lord  said,  'Come,  let  us  us  go  down,  and  there  confuse  their  lan- 
guage that  they  may  not  understand  one  another's  speech  . . Gen.  11  V.7. 


SINC-LINK 


BOB'S   NOTEBOOK  919119 

In  writing  this  column,  I  always 
try  to  include  material  from  my 
"notebook"  that  I  have  just  been 
working  on  that  should  appear  in 
the  next  Sine-Link  in  order  to 
be  timely.  What  follows  comes  as 
a  result  of  my  latest 
endeavours . 

Uhen      I      read     each      issue  of 
Sine-Link,       there      is  often 
material    that    does   not  interest 
me       at   the   time      !    But    as  time 
wears   on,    I   often  go   back   to  old 
issues      in     search     of  some 
information  on   a  subject      I  was 
not      then      into     but      have  now 
decided  to    investigate.    Thus,  I 
keep     a     fairly  comprehensive 
index     of      items     for     all  the 
issues  of   the   newsletter   back  to 
1985.      This      I      keep      in  two 
Pro/File   files,    slink   and  slink2 
which     are     available     from  the 
club  library. 

For   those  using  Pro/File,    I  have 
just      performed     some  minor 
surgery  on   the   BASIC   to   put    in  a 
couple     of     options     that  may 
interest  you: 

<1>  There  is  now  a  CAT  option 
that  displays  the  directory  on 
the  disk  in  the  selected  drive; 
then  goes  on  to  display  more 
information  in  the  form  of  start 
address  and  length  of  each  file 
on  that  same  disk  (a.k.a. 
Fullcat); 

(2)  There  is  also  an  option  to 
allow  you  to  switch  back  and 
forth  between  the  Left  and  Right 
side  of  the  8.5  inch  page.  This 
seems  a  rather  crude  way  to  pack 
more  mat er i a  1  -  on t o  each  page  for 
after  printing  the  left  column 
for  each  page,  it  is  necessary 
to  roll  the  paper  back  and  then 
print   the   right-hand  column. 

Another  way  I  can  see  to  do  this 
would  be  to  export  the  Pro/File 
file  into  Pixel  Print 
Professional  and  take  advantage 
of  the  Bank  Switching  technique 
to  print  the  left  and  right 
columns  simultaneously.  I  tried 
this  approach;  if  you  want  to 
have  a  go,  here  are  a  few 
lessons    learned : 

<  1  >  SAVE  the  Pro/File  file  to 
disk  using  the  RND/SEQ  commands 
in  the  Version  3  EPROM.  Give  the 
new  files  a  name  ending  with  the 
Mscript  extensions  (.CT)  eg,  you 
would  open  a  channel  thus: 
RANDOMIZE  USR  190:  OPEN 
*3,Mname.CT  OUT". 

(2)  In  PPP,  the  MSCRIPT  to  PP 
conversion  routine  will  only 
handle  up  to  375  lines,  so  you 
must  save  text  in  parts  that  do 
not  exceed  this  limit.  Vou  can 
accomplish  this  by  using  the 
Profile  search  command  wisely, 
eg,  using  89  will  save  all  the 
records     with     that      number  in 


them. 

(3)  Blank      lines      will      not  be* 
saved   so   don't    count    them   as  you 
keep  track. 

(4)  Load  PPP  and  select  the 
Mscript  conversion  routine.  Use 
the   64   col  option. 

Etc.    Etc.  Etc. 

I  concluded  it  is  far  easier  to 
use  the  Left/Right  toggle  and 
roll    the   paper  back. 

In  any  case,  I  have  provided  a 
copy  of  the  revision  for  the 
club  library  and  it  is  available 
to  those  who  are  valid  owners  of 
Pro/F  i 1 e . 

One   tack      I      have     taken  lately 
(suggested     to      me     by  Richard 
Hurd)      was      to     disconnect  my 
TS2949   and   cope     only     with  the 
wide   t>r  inter .      So      far,      it  has 
been   successful      with     the  only 
problem     area     being     getting  a 
printout    of  Timachine   output  and 
this     can     be     done     using  the 
Random/Sequential  Filing 
commands.    Vou   may   recall    that  I 
covered   that    in   the     May/Jun  99 
issue  page  4. 

Let's     consider  interaction 
bet  ween  files: 

One   of   the   side-effects   of  using 
Omnibus      is     that  sometimes 
loading   a  program   from  the  menus 
produces  strange   results     or  no 
results   at  all. 

For     example,      if     you  save 
Timachine   onto   the   Omnibus  disk 
and   try   to    load    it    using   a  menu 
option,    you   may      be  frustrated. 
It      seems     that  some 
incompatibility     exists  that 
prevents     Timachine      from  being 
loaded   unless     the      computer  is 
reset      or     at      least  another 
AUTOSTART   file    is    loaded.    I  have 
never   been   able   to   discover  the 
cause   or     how     to     resolve  this 
problem. 

However,  one  problem  occurred 
recently  which  I  was  able  to 
resolve.  If  you  have  Mscript 
(tailored  for  Omnibus /Ramdisk 
use)  as  an  Omnibus  menu  option, 
load  it  and  cheok  how  many  bytes 
have  been  used  <<LENGTH>  on  the 
Mscript  home  menu);  it  should  be 
1  (one) .  Now  quit  Mscript  which 
should  take  you  back  to  the 
Omnibus  menu.  Load  some  other 
program,  say,  Profile;  then  quit 
to  the  Omnibus  menu.  Now  reload 
Mscript.  If  you  do  not  get  a 
length  1  on  the  menu,  you  have 
this  incompatibility.  For  the 
length  1  to  be  displayed,  I  have 
discovered  that  the  addresses 
46927,  35449  and  44935  must  all 
hold  zeroes.  Go  back  to  the 
Omnibus  file  and  break  into 
BASIC.  Find  the  line  that  loads 
Mscript;  it  should  be  3329. 
After   the   first      PAUSE     oo,  add 


SINC-LINK 


<POKE    46927, oo: 
POKE   44935, oo>. 
you    1  oad   flscr  ipt 
you     were  doing 
should   get  the 
reading. 


POKE      35440, oo: 
Now     each  time 
no   matter  what 
before,  you 
correct  Length 


If  you  keep 
Timachine  on 
disks  and  load  them 
own  Autostarts,  th 
will  just  not  occur 
interaction  between 
programs  and  Omnibus 
the  clash. 


Mscript  and 
their  separate 

Mia  their 
s  problem 
It's  the 
these 
that  causes 


It's  the  curse  of  complexity; 
but  that's  what  make  programming 
the  TS2868  challenging  and  good 
fun,  don't  you  agree?  Let's  hear 
from  you  readers  who  have 
anything  to  add  to  all  this 
stuff   this  time. 

Bob  Mitchell  29  Uild  Briarway 
Uillowdale   Ont    M2 J   2L2  494-5268. 


TORONTO 
TIHEX-SIHCLRIR   USERS  CLUB 


1   REM  This  program  will   produce  the  globe  aboveL 
10  FOR   ::=-87.  5  TO  87.5:_LET   i  =  INT    (  SQR   <  7744-x*x  ) -.  5  >  +.  5. 


20  FOR  y=-i   TO   i:    IF  x+2*y+2*SQR   <  7744-x*x-y*y  ><RND*264  THEN 
,0T  x+127. 5, y+87. 5 
30  NEXT  y:   NEXT  x 


SINC-LINK 


QL  IPS 


By  Hugh  H  Howie 


QL  BASHERS  

Why  are  there  so  many  QL  Bashers  out 
there?  Some  have  never  even  tried  the 
QL.  Anyone  I  have  spoken  to,  and  has 
used  the  QL  has  nothing  but  praise  for 
it.  The  main  gripe  is  that  it  is  not  IBM 
compatible.  Most  folks  I  have  spoken  are 
very  quick  to  praise  the  power  of  the 
QL.  Except  in  a  very  few  cases  it  is 
lauded  as  being  better  than  most  PCs  on 
the  market,  even  to-day. 

There  is  nothing  wrong  with  the  QL  other 
than  the  fact  it  was  pushed  onto  the 
market  before  it  was  ready.  Even  to-day, 
the  QL  is  a  powerful  machine.  Don't  let 
anyone  try  to  tell  you  otherwise. 

What  prompted  me  to  write  this,  was  that 
last  week  I  received  a  letter  from 
Marinus  Heuseveldt  in  Florida,  the  only 
person  who  put  pen  to  paper  in  reply  to 
my  suggestion  of  a  QL  Hardware  Library, 
and  also  Tuition  Course.  I  would  like  to 
Quote  from  his  letter :- 

"Your  idea  of  a  hardware  library  (QL) 
sounds  good  to  me,  but  there  may  be  a 
question  of  how  much  use  it  will  get.  It 
is  one  thing  to  hardware  hack  a  TS1000- 
still  another  the  2068,  and  yet  another, 
a  QL.  To  the  hardware  hacker  there 
wouldn't  be  any  reluctance  to  work  the 
QL  over,  however,  to  the  less  capable, 
experienced,  there  would  be" 

He  also  pointed  out  a  few  difficulties 
with  a  correspondence  course  in 
programming.  A  positive  letter  with  many 
valid  observations.  Very  constructive. 
Very  welcome.  I  would  like  to  thank 
Marinus  for  his  well  argued  comments, 
and  for  taking  the  time  and  trouble  to 
write.  This  article  was  prompted  by  his 
letter  to  me.  Just  demonstrates  what 
participation  in  communication  can  do. 
We  need  more  of  it.  Constructive  stuff. 

In  other   words,    what    he    is    saying  is 
that    the    QL    is    a   much    more  complex 
machine  to  hack  than  the  2068. 
So  there  ! 

Here  is  another  quote,  this  time  from  a 
well  known  programmer  of  QL  and  IBM 
experience.  His  experience  is  mainly  in 


the  ARCHIVE  field,  but  he  is  also  well 
versed  is  all  aspects  of  the  QL.  Bill 
Cable  is  a  prolific  contributer  to 
UPDATE,  and  his  articles  are  always 
looked  forward  to  by  the  QL  fraternity. 
In  other  words  he  is  an  expert,  probably 
one  of  the  best  in  the  world  on  the  QL. 
This  extract  is  from  the  April  1990 
issue  of  UPDATE. 

Bill  Cable  writes:- 

"How  do  we  judge  the  QLs  performance 
against  the  other  machines?  1.  QL  much 
slower  in  its  screen  handling.  This  is 
evident  in  QUILL  and  ARCHIVE.  I  tried 
SPEEDSCREEN  and  LIGHTNING  but  they 
didn't  improve  the  times.  Some  programs 
still  manage  to  give  fast  screens.  The 
EDITOR  and  TEXT87  are  examples.  Also  the 
QL  was  multitasking  QUILL  while  DBEasy 
was  being  run.  That  didn't  affect  the 
speed  of  doing  the  tasks  because  QUILL 
was  sitting  idle.  None  of  the  other 
computers  can  multitask.  None  of  the 
other  computers  can  network  either, 
without  expensive  equipment.  And  the  AT 
machines  cost  2  to  5  times  as  much  as 
the  QL.  At  some  point  I  will  try  these 
same  tasks  on  the  THOR  and  pass  on  the 
results.  It  should  be  much  closer  to  the 
AT  machines.  If  you  were  to  judge  the  QL 
purely  on  the  response  times  it  shows 
its  age.  If  you  judge  it  on  its  overall 
features  taking  into  account  its 
powerful  operating  system,  its  cost,  and 
how  much  you  can  accomplish  with  it  then 
it  still  can  hold  its  own  against  most 
PCs." 

End  of  Quote. 

That  is  what  the  experts  think, 
(me  too) 

The  DBEasy  program  Bill  mentions  is  one 
of  his  own  creations,  and  is  a  database 
manager  for  ARCHIVE,  permitting  the 
creation  and  managing  of  databases  for 
many  applications,  allowing  switching 
between  databases.  He  has  also  written  a 
great  many  other  Archive  Programs  worthy 
of  your  attention.  He  is  a  regular 
contributer  to  UPDATE  Magazine,  called 
"The  Cable  Column" 

May  his  shadow  never  grow  less. 

§§§ 


SINC-LIIMK 


LISTING  FOR  DISK  MENU  MAKER 

1  REM  DISK  MENU  910216  LDC 

2  REM         based  on  the  program         developed  by  George  Chambers 
&  Bob  Mi tchel 1 

3  PRINT  CHR$  2:   CLS   :   ON  ERR  RESET 

4  RANDOMIZE  USR   100:   OPEN  #4,"dd" 

5  LET  c=100:   BORDER  6:   INK  9:   PAPER  5:  CLS 

10  DIM  X$( 16) :  FOR  i=0  TO  15:  LET  q=PEEK  ( 26660+ i ) :  IF  q=0  THEN 
GO  TO  15 

11  LET  x$( i+1 )=CHR$  q:   NEXT  i 

15  PRINT  AT  1,1;   PAPER  1;   INK  9; "MENU  FOR  DISK  ";   PAPER  2;x$' ' 

19  RESTORE  c:   LET  n=0:  PRINT 

20  READ  a$:  READ  b$:  IF  a$o"STOP"  THEN  LET  n=n+1  :  GO  SUB  7000 
:   GO  TO  20 

35  PLOT  INK  3; 0,0:  DRAW  255,0:  DRAW  0, 175:  DRAW  -255,0:  DRAW  0 
,-175:  PLOT  1,1:  DRAW  253,0:  DRAW  0, 173:  DRAW  -253,0:  DRAW  0,-173 
:   INK  9 

38  PLOT  9,20:   DRAW  237 ,0:   DRAW  0, 135:   DRAW  -237,0:   DRAW  0,-135 
50  PRINT  AT  20,7;   PAPER  2;   FLASH   1 ; "PRESS  A  TO  " ;CHR$  (n+64)  ;  " 
ONLY" ;   FLASH  0 

70  POKE  23658,8:   PAUSE  0:   LET  n$=INKEY$ 

80  IF  n$<"A"  OR  n$>CHR$  ((n+1)+64)  THEN     GO  TO  70 

85  POKE  23658,0:   BORDER   1:   PAPER  5:   INK  9:  CLS 

90  RESTORE  100:   FOR   i=1  TO  CODE  n$-64:   READ  a$ :   READ  b$:   NEXT  i 

91  LET  t$=b$(LEN  b$-1  TO  ) 

92  IF  t$~"CT"  THEN  GO  SUB  5E3 :  RANDOMIZE  USR  c:  PRINT  b$:  PRIN 
T  CHR$  2:   PRINT  "END  OF  FILE. . .PRESS  ANY  KEY" :   PAUSE  0:   GO  TO  1 

94  IF  t$(1)="B"   THEN     RANDOMIZE  USR  c:    LOAD  b$ 
98  RANDOMIZE  USR  c:   LOAD  b$CODE   :  STOP 

1001  DATA  "STOP","  " 

1002  GO  TO  1 

3200  RANDOMIZE  USR  c :   GO  TO  4 :   PRINT  #4:  NEW 
5000  INK  0:   PAPER  7:   BORDER  7:  CLS 
5010  RANDOMIZE  USR  c:   LOAD  " tasw i . Cx "CODE 
5020  RANDOMIZE  USR  64300:   PRINT  CHR$  3; 
5030  ON  ERR     GO  TO  1 :  RETURN 

7000  IF  LEN  a$<24  THEN     PRINT  "     " ;CHR$  (n+64) ; "  -  " ; a$ :  RETURN 
7010  PRINT  "     ";CHR$  (n+64);"  -  ";a$(  TO  24):   PRINT  TAB  6;a$(25  T 
0  ) :  RETURN 

8000  CLEAR  65535:  RESTORE  8010:  FOR  i =0  TO  32:  READ  a:  POKE  2431 1 
+i ,a:   NEXT  I:   RANDOMIZE  USR  243 1 1 :  RUN 

8010  DATA  243,205,98,0, 1 75 , 50 , 29 , 32 , 50 , 32 , 32 , 205 , 126,0,205, 123,0, 
33,4,50, 17,36, 104, 1 , 16,0,237, 1 76 , 58 , 100 , 0 , 25 1 , 201 

8887  STOP 

8888  CLS  :  INPUT  AT  10 , 0 ;" DESTINATION  DRIVE  #?  " ;dd:  LET  c=100:  R 
ANDOMIZE  USR  c:  POKE  8200,8195:  LET  s=USR  1 10:  LET  sd=INT  (s/4-(s 
>8) ) :  RANDOMIZE  USR  c:  GO  TO  sd:  RANDOMIZE  USR  c:  LOAD  "taswi .Cx" 
CODE  :  RANDOMIZE  USR  c:  GO  TO  dd:  RANDOMIZE  USR  c:  SAVE  "taswi .Cx 
"CODE  63223, 1492 

8889  DELETE  8888,8889 

9999  CLEAR   :   POKE  23730, PEEK  23641 :   POKE  23731 , PEEK  23642+1 :  CLS 
:   PRINT  AT  10,0; "PRESS  <D>  KEY  FOR  AUTOSTART  SAVE" :   RANDOMIZE  USR 
102:   GO  TO  8000 


SINC-LINK 


ZX81  NOTE  Al      V  71     DATE  91/02/21    TIME    9:37:25  PAGE 


Periodically  its  nice  to  set  up  your  ZX81  and  have  a  little  fun. 

I  like  to  think  of  games  in  three  categories.  1)  ARCADE  -  these*are 

the  kill  the  cleons  type,  pong  etc.  In  the  early  days  of  home  computing 

these  games  flourished  but  today  there  is  no  way  to  compete  with 

Nintendo.  2)  ADVENTURE  -  these  are  the  games  were  you  try  to  find 

your  way  interactively  through  the  castle  and  get  the  treasure. 

I  have  found  a  few  good  examples  that  run  on  my  ZX81,  for  example 

TREASURE  HUNT.  3)  MIND  -  these  are  the  interesting  games  because 

they  do  not  require  a  great  deal  of  graphics  just  a  good  thinking 

mind,  for  example  THE  TOWERS  OF  HANOI.  It  is  the  last  two  types  of 

games  that  I  am  searching  for.  I  have  looked  through  our  club 

library  and  can  find  several  examples  of  the  ARCADE  games  and 

a  few  ADVENTURE  games,  but  very  little  MIND  games.  I  suspect  that 

there  are  a  lot  of  these  games  gathering  dust  in  the  bottom  of 

your  filing  cabinets  but  I  would  like  to  see  them.  Have  you 

got  some  great  MIND  game  that  you  think  would  stump  the  whiz? 

Heres  the  deal.  Send  me  whatever  you  have  in  the  way  of  MIND  or 

a  really  good  ADVENTURE  game,  either  listing  or  on  tape.  I  will 

edit  and  accumulate  them  into  a  set  of  games.  If  you  send  me 

something,  you  will  get  a  copy  of  the  complete  set  of  all 

games  sent  in. 

Send  your  stuff  to: 

Ron  Campbell 

37  Sir  Galahad  Place 

Markham,  Ontario 

L3P  3K7 


-  T  H  E:     M  □  R  THE  R  H  LIGHT" 

TORONTO  T I HEX-5 I HCLfl I R  USERS  CLUB 


SINC-LINK 


323  1/2  N.   Church  Street 
Bowling  Green,   OH  43402 
November  19,  1990 


Dear  George, 

I  got  the  November  Sine-Link  today,  and  thought  I  would 
write  you  concerning  packing  numbers,  as  was  discussed  in  the  TS 
Bulletin,  p.   4.     (By  the  way,  there  was  no  page  2  on  the  copy  I 
got.     Others  may  have  had  that  problem  as  well.) 

In  general,  you  can  place  2  numbers  into  1  byte,  but  not  3 
as  was  attempted  by  this  routine  -  unless  you  can't  use  every 
number.     However,  you  can  fit  7  digits  in  3  bytes,   by  extending 
the  normal  method  used  to  double-POKE .     This  would  look  as 
follows:    (The  Variable  ph  is  presumed  to  be  the  phone  number.) 


1  REM  (at  least  15  characters) 
5  REM  Telephone  number  storage 

10  FOR   1  =  1  TO  3 

15  LET  hi  =  INT  (ph/256) 

20  POKE  16524+i,ph-hi*256 

25  LET  ph  =  hi 

30  NEXT  i 

40  REM  handles  any  7 -dig it  number 

50  PRINT  "TEL  NO.  ••; 

60  FOR  1  =  3  TO  1  STEP  -1 

70  LET  ph  =  256*ph+PEEK(165244-i  ) 

8  0  NEXT  i 
90  PRINT  ph 

9  9  STOP 


I  should  note  that  this  routine  would  handle  any  kind  of  a 
number  provided  it  was  less  than  16,000,000.     As  for  marking 
invalid  (non-existent)   numbers,   there  are  over  6  million  left 
over,  so  that  should  be  easy. 

Actually,   there  are  fewer  phone  numbers  than  the  10  million 
I  was  presuming  above.     First,  no  7-digit  phone  number  can  begin 
with  a  0  or  1,  the  operatop  or  long-distance  codes.  Secondly, 
the  first  3  digits  must  not  correspond  to  an  area  code,  or  the 
phone  company's  switching  circuits  would  get  confused.  Since 
all  area  codes  have  a  second  digit  of  0  or  1,  we  could  compute 
there  are  really  only  6,400,000  valid  7-digit  phone  numbers.  It 
still  takes  3  bytes  to  store  it,  but  we  have  a  lot  of  spare 
digits. 

If  we  wanted  to  use  10-digit  phone  numbers,  we  could  use 
this  to  our  advantage.     Normally,  10  digits  would  require  5 
bytes.     But  there  are  enough  un-usable  numbers  so  that  we  could 
get  by  with  only  4,  and  have  the  entire  area  code  in  1  byte. 
This  requires  a  little  more  trickery,  but  not  much.     In  the 
following  part  of  a  program,  presume  (ac)   is  the  area  code,  and 
(ph)   is  the  phone  number: 

1  REM  (at  least  15  characters) 

5  REM  Store  (ac)  and  (ph) 
10  LET  ac=ac-80*INT  (ac/100) 
15  POKE  16524,  ac 


SING— LINK 


20  FOR   1  =  1  TO  3 

2  5  LET  hi=INT(ph/256 ) 

30  POKE  16524+i,ph 

35  LET  ph=hi 

4  0  NEXT  i 

45  REM  phone  number  stored 
50  PRINT  "TEL  NO.  "; 

55  LET  ac=PEEK  16524 

56  LET  ac=ac+80*INT  (ac/20) 

6  0  IF  AO0  THEN  PRINT  "  (  " ; ac;  "  )  " ; 
65  FOR   1=3  TO  1  STEP  -1 
70  LET  ph=ph*256+PEEK(16524+i) 
75  NEXT  i 

80   IF  ph>0  THEN  PRINT  ph 

85  IF  ph=0  THEN  PRINT  "None" 

99  STOP 

Of  course,  you  would  need  a  line  to  put  the  phone  number 
into  ac  and  ph.     I  am  using  a  0  in  either  to  indicate  it  is 
missing,  since  neither  can  be  all  O's. 

Similar  techniques  could  be  used  in  any  field  with  data 
from  a  restricted  set  of  characters  -  anything  numeric,  or  even 
postal  codes.     If  we  wished  to  use  end-of-field  markers  and 
such,  we  could  change  every  256  to  a  lower  number,  like  250,  or 
anything  down  to  about  220.     Anything  below  220,  though,  and  our 
7-digit  phone  number  would  need  at  least  4  bytes  of  storage,  and 
1  for  the  area  code. 

Well,  that's  all  for  right  now.     Also  note  that  on  a  2068, 
we  would  change  the  16524  to  some  other  number.     In  a  practical 
program,  you  would  want  a  variable  instead  -  we  can't  POKE 
everything  into  the  same  location.     Or  we  could  change  the  POKEs 
and  PEEKS  to  use  CODE  and  CHR$  and  put  the  number  into  a  string 
or  string  array. 

I  am  almost  done  with  ray  version  of  Statistical  Analysis 
for  single  variable  distributions,  which  I  am  writing  for  Bob 
Mitchell.     The  program  he  had,  which  he  said  he  pulled  out  of  a 
magazine,  was  a  mixture  of  different  routines  for  one  and  two 
variables,  which  made  it  confusing  to  use,  so  I  thought  I  would 
seperate  them  and  clear  it  up  some. 

Anyway,   I  will  probably  write  you  again  in  a  couple  of 
weeks  when  I  am  satisfied  with  it.     I'll  be  in  Windsor  this 
week,  but  I'll  be  back  by  next  week  -  you  may  remember  I  always 
go  to  Windsor  for  my  American  Thanksgiving  break.     So  bye  for 
now,  and  peace. 


S  incerely 


SINC-LINK 


The  last  version  of  ARCHIVE,  called  flRCdev  and  ARCrtn,  introduces  the 
possibility  to  call  external  nachine  code  routine  to  conplenent  the 
fiRCHIUE  programing  language.  This  is  also  true  for  the  PSION  XCHRN6E 
software. 

ye  load  the  external  routines,  with  LOAD  USR  'filename' 

the  default  extension  is  '_pnc' . 

and  we  call  then  with  LET  x=USR(pari,'par2*') . 

The  first  paraneter,  PARI,  is  a  nunber  and  the  second  one  (PAR2$) ,  a 
string.  Note  that  even  if  PAR2$  is  a  variable,  we  have  to  put  quotes 
around  it.  The  variable  X  will  contain  an  error  code  in  the  QDOS 

tradition. 

From  the  programing  point  of  view,  the  routine  nust  begin  with  a  6 
bytes  header  like  this:      DO  'pncO' 

OC.U  routing J ength 

The  register  DO  contains  the  value  of  PARI  and  AO  is  pointing  to 
PAR2*.  The  first  byte  of  PAR2I  is  length  of  the  string. 

Only  one  'jane'  file  can  be  in  nenory.  But  it  is  possible  to  develop  a 
toolkit  for  fiRCHIUE  and  use  PARI  to  select  the  different  routines  by 
testing  the  value  of  DO  in  our  program 

ex.     RQU7INEJ}    DBF  dO,ROUTINE_l 


ROUTINE.!    DBF  d0,R0UTINE_2 
... 

RTS 

ROUTINES    DBF  dO, ERROR 


ERROR 


flOUEQ  *-15,d0 
RTS 


PAR2$  can  pass  nore  than  one  paraneter  by  using  the  ascii  code  of  each 
character.  Uith  this  nethod  each  paraneter  can  have  a  value  between 
0-255.  For  example,  if  the  routine  2  of  our  imaginary  toolkit  is  to 
produce  a  beep,  the  first  paraneter  can  be  the  tone  and  the  second, 
the  length.  For  exanpie,  if  we  need  a  tone  of  20  of  length  5,  this  can 
be  coded  with  LET  beep*=ChR(20)4CHR<5) 
and  called  with         LET  x=USR(2,'beep*') . 

The  following  utility  will  pernit  to  fiRCHIUE  to  comunicate  via  the 
SER2  port,  we  will  use  it  to  dial  a  phone  nunber  by  sending  the 
appropriate  comand  to  a  noden. 

In  fiRCHIUE,  load  SER2_pnc  with  LOAD  USR  'SER2' .  If  you  want  to  dial  a 
nunber  and  your  noden  is  HAYES  compatible  then  type 

LET  nunber$='fiTDT1234567'4CHR(13)  . 

'flTOF  is  a  comand  to  dial  a  nunber  on  a  TOUCH  TONE  line,  if  you  have 
a  PULSE  line  use  'ATOP'  instead.  You  have  to  terninate  the  variable 
nunber*  with  CHR03)  to  force  to  noden  to  execute  the  comand. 

To  start  the  dialing  type  LET  x=USR(speed, 'nunber*')  where  speed 
represents  to  baud  rate  specific  to  your  noden.  Speed  equals  to  0  for 
75  bauds,  1  for  300  ,  2  for  600,  3  for  1200  ,  4  for  2400,  5  for  4800,  6 
for  9600  vtd  7  for  19200! 


Uhile  the  noden  dials  the  nunber  pick  up  the  phone.  After  the 
dialing,  the  noden  nust  hang  up  the  phone.  Just  send  a  carriage  retirrs 
to  the  noden,  this  will  put  it  off  line  right  away. 

let  nunber*^  RTDT1234567'  +chr  (13) 
let  hangup*=chr<13) 
let  x=usrQ,'nunberf') 
print  'Press  a  key  to  put  the  noden 
off  line  after  the  dialing.' 
input  dumy* 
let  xsusrO/hangup*') 

Say  you  have  a  database  containing  a  nenbership  list  for  your  bowling 
club.  The  phone  nunber  of  each  newer  is  given  by  the  field  phone*.  To 
call  Joseph,  find  his  record  and  issue  the  following  comands  to  dial 
his  nunber: 

let  nunber*='flMs+phone*+chr(13) 
let  x=usr<3/nunber*') 

To  create  SER2j3nc,  type  in  the  BRSIC  loader  and  run  it. 

I  repeat,  this  will  not  work  with  ARCHIUE  2.3  or  2.35.  You  need 
fiRCdev/flRCrtn  (also  called  fiRCHIUE  run-tine)  or  the  PSION  XCHANGE 
which  is  a  conbinaison  of  QUIUyflRCHIUE/EIKEL/flBflCUS  into  one  big 
progran.  I  have  developped  SER2jnc  with  XCHRN6E  v3.27,  I  don't  have 
ARCdev. 


SER2_pmc  BASIC  LOADER 


100  REttark  LOADER  for  SER2jmc 

110  REHark  by  Real  6agnon,  ttontreai  Quebec  decSO 

120  : 

130  CIS: INPUT  "SflUE  SER2_pnc  UHERE?  (default  flpO?";sauve* 
140  IF  LEN<sauve$)=0:sauve*="flpl_" 
150  PRINT  "One  nonent  please."; 

160  :  

170  RESTORE  1000 

180  nenoire=RESPR(5l2) :base_nenoire=nenoire 
190  conpte=0  :  checksun=6567  :  checkne=0 

200  : 

210  REPeat  loop 

220    IF  EOFiEXIT  loop 

230    READ  byte: POKE  nemire,bute:nemire=nenoire+i 

240  conpte=conpte+l 

245  checkjte=checkm+byte 

250    PRINT  "."] 

260  END  REPeat  loop 

265  : 

270  IF  checkm<>checksun:PRINT  v'Checksun  incorrect"  :ST0P 
280  : 

290  S8YTES  sauve*8'SER2_pnc? ,base.nenoire,conpte 
300  PRINT  '0k!'sST0P 
310  : 

1000  DfiTfl  112,  109, 

1001  DATA    0,  66, 

1002  DfiTfl  78,  65, 

1003  OfiTfi  65,  250, 

1004  OfiTfi  102,  0, 

1005  DflTB  34,  ~ 


1006  DfiTfl 

1007  ORTR 

1008  DfiTfl 

1009  DfiTfl 


o2' 
75, 


75, 
Si 


99, 

48, 

o, 

86, 

38, 

72, 

65, 

250 

50, 

24, 

81, 

200, 

255, 

252, 

112, 

18 

255, 

38, 

60, 

0, 

0, 

o, 

0 

36, 

112, 

1, 

78, 

66, 

74, 

64 

o, 

5' 

27, 

?2, 

130, 

118, 

255 

112, 
112, 

I 

78, 

67, 

2' 

64, 

102, 

0 

78, 

68, 
114, 

■8' 

6 

50, 

105, 

o, 

75, 
192, 

?; 

44 

176; 

3, 

96 

18 

3?; 

128 

12 


SINC-LINK 


The  Quebec  Link. 


*  filena*  :  SER2_pk  vision  1.8 
X      date  :  decetter  1998 

X  tochine  code  extension  for  ARCHIVE  2.38  and  XCHflNGE 
X  to  add  the  possibility  to  talk  directly  to  the 
X  SER2  port. 
X 

X  LORD  with  the  corand   LORD  USR  'ser2' 

X  USE  with  the  coaund 

X        LET  resuU=USR<speed,'strinQS') 

t         uhere  speed  is  the  baud  rate  to  be  used 

X  8=75    1=388    2=689    3=1288  4=2488 

X  5=4888  6=9688  7=19288 

I         uhere  strings*  is  the  variable  no* 

*  containing  the  string  to  be  sent. 

X  note  that  you  have  to  put  quotes  around 

X  it. 

X 

X  the  routine  returns  an  error  code  in  the 
X  variable  result  if  any.  8  =  no  error 
X  other  =  error 

X 

X  This  prograi  is  donated  to  the  public  drain 

I  written  by  Real  Gagnon      and  HIC  LOGIQUE 

X  8286  Stt*i>ert  P.O.  Box  1393 

I  Montreal  (Quebec)  Place  du  Pare 

I  CflNflOR  H2P  1Z3  Montreal  Quebec 

X  CflNflOfl  H2U  2R4 


HT.BflUD 

IO.OPEN 

IO.aOSE 

IOSSTRG 

THIS.JOB 

neaoer 


equ 
equ 
equ 
equ 
equ 

dc.b 
dc.u 


S12 
SI 
12 
17 

-1 

'pK8' 

finish-start 


set  the  baud  rate 
open  a  channel 
close  a  channel 
send  a  string  to  a  channel 


A8  contains  the  pointer  of  the  string  to  be  sent. 
08  contains  the  baud- rate  to  be  used 


set  the  baud  rate 


start  aove.l  o8,a3  preserve  the  string  address 

lea  baud_choice,a8  find  the  correct  baud  rate 

baud,  loop       tove.u  (aB)+,dl 

dbra  d8.baud.loop 

■oveq  tnT_6flOO,d8 

trap  tl 

X  

t 

X  


open  a  enamel  for  SER2 


■oveq  ITHIS.JOB,dl 

■ove.l  W,d3  ue  open  a  channel  for  a  device 

lea  devicenaK,a8 

•oveq  «O„0PEH,d8 

trap  12  open  the  channel 

tst  d8  error? 

bne  error.de  tected 


R8  contains  the  CHfHfi  ID  (needed  fx  10  SSTRG) 
nou  ue  have  to  send  the  string  pointed  by  B4 


length  of  the  string 


iove.b  (a3)+,d2 

ext.u  d2 

■oveq  H,d3         no  tiieout 

■ove.l  a3.al  string  address 

■oveq  ♦Iu„SSTRG,d8 

trap  13 

tst  d8 

bne  error  .detected 


X 

> 

X  

ax it. send  ■oveq 
trap 

errordetected  rts 


nou,  ue  close  the  channel  <A8  still  contains  CHRN€L  10 


«I0_CL0SE,d8 
12 


device_noM 

baud.choice 
finish 


dc.u 
dc.b 

dc.u 

end 


SER2ir' 


go  back  to  flRCMUE/XCHRNGE 

length  of  the  device  nose 
no  handshake  and  no  parity 


75 ,388 ,688, 1286 ,2488 ,4888 ,9688, 19288 


SINC-LINK 


13 


MIKE'S  NOTEBOOK 

By:    Michael    J.    Di  Rienzo 

(NOTE:  REPRINTING  OR  REPRODUCING 
THIS  COLUMN  WITHOUT  THE  EXPRESSED 
WRITTEN  PERMISSION  OF  THE  AUTHOR  IS 
HEREBY  PROHIBITED.  FOR  PERMISSION, 
WRITE  THE  AUTHOR  IN  CARE  OF  THIS 
PUBLICATION. ) 

If  you  are  used   to     SAVEing  SCREEN* 
files,   you  may  have  noticed   that  the 
file  size   is   rather    large  especially 
if  you   LOAD  or  SAVE     using  cassette 
storage  medium*      The     file     is     69  12 
bytes      long.      Another     problem  to 
overcome   is      that      if     you     want  to 
store     more     than     four       or  five 
SCREEN* es   in  RAM     memory,      there  is 
hardly     any     memory      left     for  your 
programs.   This  months     utility  will 
COMPRESS  a  typical   SCREEN*     file  up 
to  as  much  as   1/2  its  usual    size,  in 
addition,    a  header   is  automatically 
included   in     the     SAVED     file  which 
will    resolve   the  compressed  SCREEN* 
back     to      its     full      size     onto  the 
screen  by  simply  using  RANDOMIZE  USR 
(address) .      The     following  program 
will      SAVE      the     compressed  SCREEN* 
CODE  at   address  40246   and      you  will 
be  shown   the  file   length   if  you  wish 
to  write   it  down.   When  you  are  ready 
to  LOAD     the     compressed     file  into 
your  own  program,    you  can  LOAD   it  to 
any   legal   address  then     "call"  that 
address     to     get         your  expanded 
SCREEN*.    The  following  program  will 
POKE   in   the  CODE  th  en  prompt  you  to 
INPUT  the  file  name  of     the  SCREEN* 
that  you  want   to  compress.      It  will 
then  LOAD   it  and      temporarily  store 
it.   Next   you'll    be  asked     what  name 
you     want      to     give     the  compressed 
SCREEN* .      The     SCREEN*  will  be 

instantly  compressed  and  you  will  be 
notified  of  the  start  address  and 
byte  length  of  the  file.  Now,  a 
prompt  to  press  any  key  when  you  are 
ready  to  SAVE  your  file.  Don't 
worry,  your  compressed  file  is 
already  stored  at  address  40246 . 
This  utility  can  be  easily  modified 
by  you  to  work  with  any  disk  system. 
I  use  this  utility  alot  to  animate 
as  many  as  15  compressed  SCREEN*  by 
LOADing  them  consecutively  in  memory 
then  calling  them  in  sequence  to 
simulate  animation.  The  CODE  is  not 
relocatable  and  is  132  bytes  long. 
Have  fun! 


•CMPRES* 

By  Michael   J.   Di  Rienzo 

10  CLEAR  36611:  LET  store=3672 
0s  LET  recal I =36732:  LET  compres 
s=36612:   GO  SUB  100 

20  INPUT  "What  is  the  file  nam 
e  to  LOAD?      •  ;n* 

30  LOAD  n* SCREEN*    :  RANDOMIZE 
USR  store 

40    INPUT  "What   is  the  file  nass 
e  to  SAVE?      • ; n* :   RANDOMIZE  USR 
recal 1 

50  RANDOMIZE  USR  compress:  LET 
L=USR  40192:    LET  L=L-40246 
60  PRINT   INK  2;   PAPER  5;AT  10, 
0 ; BFi 1 e: ■ • ■ ; n* ; ■ " "CODE  40246 , • ; L 
»   FLASH  ljAT  11,5; -Press  any  key 
to  SAVE*:   PAUSE  0 
70  SAVE  n*CODE  40246 , L 
80  CLS   :    RANDOMIZE  USR  40246: 
PRINT   INK   I?    FLASH  If AT  10,0: "To 
resolve  the  compressed  file  ba 
ck  to  the  screen   in  the  futureRA 
NDOMIZE  USR  (Starting  address  wh 
ere  CODE  is  LOADed ! ) ■ 
90  STOP 
100  LET  t=0 

110  FOR  N=36612  TO  36743 
120  READ  a:   POKE  n,a:    LET  t=t+a 
130  NEXT  n:    IF  t<> 12070  THEN  PR 
INT  FLASH  1; -Data  Error!  Recheck 
DATA   line.-:  STOP 
140  RETURN 

150  DATA  17,0,157,33,16,143,1,9 
8,0,237, 176,201, 197,209,33, 100,0 
,25,235,33,0,64, 14 , 1 , 126 , 167 , 40 , 
9,254,255,40,5,237, 160,3,24,21,7 
1,121,60,35,40,7, 126,184,32,3, 12 
,24,243, 120, 18, 19, 121, 18, 19, 14, 1 
, 124,254,91,32,217,213, 193,201, 1 
7,0,64,221,33,46,0,221,9, 122,254 
,91,200,221, 126,0, 167,40, 10,254, 
255,40,6, 18, 19,221,35,24,236,221 
,70, 1, 18, 19, 16,252,221,35,221,35 
, 24 , 223 

160  DATA  17,0,157,33,0,64,1,0,2 
4,237, 176,201,17,0,64,33,0, 157, 1 
,0,24,237, 176 ,201 


SI  NC— LINK 


C0mDffiS5  36612  8F04  LD  DE ,  4U 1  'dZ 
V        36615  8F07   LD  HL  , 36624 
36618  8F0A  LD  BC,98 
36621   8F0D  LDIR 
36623  8F0F  RET 


36624  8F10  PUSH  BC 

36625  8F11   POP  DE 

36626  8F12  LD  HL, 100 

36629  8F15  ADD  HL , DE 

36630  8F16  EX  DE, HL 

36631  8F17  LD  HL , 16384 
36634  8F1A  LD  C,  1; 

36636  8F1C  LD  A, (HL ) 

36637  8F1D  AND  A 

36638  8F1E  JR  Z, 36649 
36640  8F20  CP  255? 
36642  8F22  JR  Z, 36649 
36644  8F24  LDI 

36646  8F26  INC  BC 

36647  8F27  JR  36670 

36649  8F29  LD  B, A 

36650  8F2A  LD  A,C 

36651  8F2B  INC  A 

36652  8F2C  INC  HL 

36653  8F2D  JR  Z, 36662 

36655  8F2F  LD  A, CHL) 

36656  8F30  CP  B 

36657  8F31   JR  NZ, 36662 

36659  8F33  INC  C 

36660  8F34  JR  36649 

36662  8F36  LD  A,  B 

36663  8F37  LD  <DE>,A 

36664  8F38  INC  DE 

36665  8F39  LD  A,C 

36666  8F3A  LD  <DE),A 

36667  8F3B  INC  DE 

36668  8F3C  LD  C, 1 ? 

36670  8F3E  LD  A,H 

36671  8F3F  CP  91 J  C 
36673  8F41   JR  NZ , 36636 

36675  8F43  PUSH  DE 

36676  8F44  POP  BC 

36677  8F45  RET 


36678 
36681 
36685 
36687 
36688 
36690 
36691 
36694 
36695 
36697 
36699 
36701 
36702 
36703 
36705 

36707 
36710 
36711 
36712 
36714 
36716 
36718 


8F46 
8F49 
8F4D 
8F4F 
8F50 
8F52 
8F53 
8F56 
8F57 
8F59 
8F5B 
8F5D 
8F5E 
8F5F 
8F61 


LD  DE, 16384 
LD  IX,46 
ADD   IX, BC 
LD  A,D 
CP  91;  C 
RET  Z 

LD  A, CIX+O) 
AND  A 

JR  Z, 36707 
CP  255; 
JR  Z, 36707 
LD   (DE) f A 
INC  DE 
INC  IX 
JR  36687 


8F63  LD  B, CIX+1) 
8F66  LD   CDE) , A 
8F67  INC  DE 
8F68  DJNZ  36710 
8F6A  INC  IX 
8F6C  INC  IX 
8F6E  JR  36687 


store       36720  8F70  LD  DE, 40192 
~       36723  8F73  LD  HL  f  16384 
36726  8F76  LD  BC,6144 
36729  8F79  LDIR 
36731  8F7B  RET 

recaft      36732  8F7C  LD  DE, 16384 
36735  8F7F  LD  HL, 40192 
36738  8F82  LD  BC,6144 
36741  8F85  LDIR 
36743  8F87  RET 

•       06714  QFOO  LP  Df, 1^  


O  Z,     MEAAJPER  I  hi  G  S  ccrucC  OAfE-LIMERS 

6//  Hugh  Howie,. 


'  To  then,    night    I    woa    Jyittin  thinkin. 

U^JLOtly   I   jUAt  -tyUt.       '  tiA  QjOU>i&SL. 

A  long  time,  ago  I  aAked  you  to  *end  in 
^ome,  ONE-LINERS ,  nothing  came.  04  the, 
njzjqueAt,  bat  I  Atitl  think,  thene,  one.  a 
tot  oi  one,-tinenA  out  thene,  juAt  waiting 
4  oa.  who-even,  to  <6<md  them  in.  So  git 
going  guy<6  {and  dollA  oIao  oj>  counAe,) 

ixfaile.  ^ittin  thinkin,  I  came,  up  with 
-borne,  thoughts  might  be,  o£  inteneAt  to 
someone,.  Don't  know  who ,  but  you.  neven. 
know  in  thiA  Hi-Tcck  wonJLd  we.  live,  in 
juAt  who  might  be,  in  a.  mood  to  tiAten  to 
^om&rono,  who  iA  -^ittin,  and  thinkin 
nathen,  than  ^omerone,  who  iA  juAt  ^ittin. 

you  iA  ^ittin  thinkin.  you.  might  juAt 
4ay  Aomethin  Month  heanin.  That  iA  i& 
you.  hoA  a  mind  to  talkin.  Hone.  iA  Aome. 
o4  my  thinkin,  i&  you.  ha*  a  mind  to 
liAtnin. 

Say  you  wnXte,  a  tot  o4  tetter  and  ^ave, 
them  to  ViAh  on.  MDU ,  giving  them  name* 
accjonjding  to  whom  you,  ana,  wnAJbing. 
{Almost  ^aid  "you.  one.  wniting  to!" 
( nexien,  end  a  sentence.  with  a. 
pnjzpoMtion. )  Alt  the,  time,  I  do  it. 

{Vnjopo^itJionA  one.  di^ienjinti ) 

when  you  want  to  njzcall  when,  and  what 
you.  wnote,,  you,  have,  to  go  thnough  a 
whole,  ^tning  o£  name*  on  the.  DZR  04  youn, 
ViAh  an,  MDf .  Ane,  you,  AtUUL  with  me,? 

But  TK2,  including  Tnjumpcand,  ha*  a, 
corrmmd  to  hetp  you,.  Say  you  wntte.  to 
Tom  on.  Dick  on,  Jack.,  {ha  ha  you,  thought 
i  woa  going  to  *ay  Hanny)  Anyway  you, 
want  to  necaJUl  the,  lettenA  to  Dave..  Att 
you,  have,  to  do  iA  type,  in:  - 

"DZR  FLVlJDaveJ' 

That.  iA  14  you,  uAe,  "Dave."  a*  the, 
ne4enence..  Attest,  the,  'ENTER'  you,  wait  a. 
second  and  what  do  you,  know,  up  on  the, 
^cneen  cornet  a  tiAt  o&  the,  tetter  you 
wnote,  to  Vave,.  Tnjy  it  ion,  the, 
expesiXence,. 

Hene,  iA    anothen,   tittle,   gem.    You,  one, 
lending     something     to     the,  pninten,, 
gnaphicA  on.  something  tike,  that,  and  you, 
want  to  Msip  in  a  tittle,  corrrmnt  at  a 


given,  point  {tine,).  Tnjy  thiA:_ 

Open  #3,^l7:  Vnint  #3,  "MESSAGE" :  cJbo^e, 
#3 

The,  quotes  one,  eAAential.  The,  "MESSAGE" 
you,  type,  in  at  that  point  wilt  go  to  the. 
pnAnten,.  Tnjy  it  out  o4  cujUo^ity ! 

Now  hens,  iA  anothen.  cnazy  thing.  I  have, 
no  idea,  what  uAe4ut  punjpo^e.  it  could 
^enjue,,  but  I  wWl  Jhane.  it  with  you, 
anyway.  No  doubt  someone.  haA  a  uAe,  4  on, 
thiA.  It  AaveA  a.  J>cneen  to  Itjp  on,  mdv , 
on,  whatever,  and  the,  details,  one,  on  page, 
57  04  the,  KejywondA  ^ectix>n  04  the,  QL 
Nanuat.  Uhy  not  tnjy  it  out? 

SbyteA  mdv1_4CAjeen_data,,2~17 ,2*15 

{"AcnjeenjiataJ'  being  youn,  title,  on, 
whatever.)  wilt  ^ave,  a  Acneen  to  mdv  1 .  To 
nejuoven,  it,  tny:- 

LbyteA  mdv  1  j^enjesm-jdata,,  (737072) 
{Note,:-  2*17  =  737072  S  2*15  =  32768) 

Tnjy  putting/typing  something  on  top  04 
the,  -saved  Acneen  you,  have,  juM. 
ne&ovened,  4ove.  it  cu>  above,,  bning  it 
bach,  to  the.  Acneen  and  <t>ee,  what  you.  get.. 

Found  out  by  happenstance,  nejcentty ,  that 
when  wnXtXhg  a  tetten,  on,  anticte,  about  a 
pnjognam,  that  i4  I  wanted  to  include,  the, 
tilting  in  the,  anJticte,,  alt  I  had  to  do 
ujcl-6  impont  it  I  Hene.  I  waJ>  nunning  two 
paAAeA  to  get,  it  acno^.  To  Impont,  the, 
lifting  to  QuitJl  you,  rruAt  have,  patience,, 
it  can  take,  a  ^eiu  minuteA.  In  text&7 
uAying  the,  ASCII  option,  the.  tnanAjen,  iA 
almost,  inMantaneouA .  ThiA  iA  one,  coAe, 
whene.  Quilt  wWL  impont  a  iite,  which  iA 
NOT  an  exp  IMjl.  text&7  wilt  impont.  juAt 
about  anything.  Aint  science,  amazin? 

PaAA  me,  the,  aApinAn.  toibeJl  thiA  thinkin 
iA  huntin,  that' -6  night,  the,  bnxtwn  jug, 
up  on  the,  top  JheM — thankA  VaboJL. 

I  neaJLly  do  hope,  I  have,  not  boned  you. 

Have.  4un.  I  am  going  bach,  to  juAt 
Pippin.  Bye,. 

SNRKRZZZ  5 


SINC-LINK 


15 


SOFTWARE   REVIEW:    OMUICALC  2. 

Up  to  now  for   ny  spreadsheet*   requirements,    I   have   been  using 
Uu-Calc  which  was   the  only  pertinent   program  available  to  ne; 
Uu-Calc  has  one  major   shortcoming:    it   can  only  handle  numbers  up 
to  seven  characters   including  a  decimal   point    (that    is   to  say, 
amounts  up   to   S9999 . 99   only).    Thus   a   value   of   $10888.86  cannot 
be  handled.    That    is   a  severe   limitation   in  the  1998's. 

On  seeing  a  recent   catalogue   from  Jack  Dohany   (of   Mscript  fame) 
uhieh    contained    a    listing    "flnnicalc",    I    urot 0    to    him   and  asked 
for  a  copy.    It   arrived  recently  and  I  went   to  work  trying  out 
this  spreadsheet   which   includes  production  of   histograms  Cbar 
charts)   based  on   input   data.    Jack  provided  a   loader  tailored  for 
the  Larken  system  but   not   for  my  particular  printer,    the  Fast ext 
88.    I  made  some  changes  to   the   loader  to   adapt    it   to  my 
situation.    Essentially,    I  amended   it   to  use  the  LKDOS  printer 
driver  code  and  decided  to  use  my  Graphics  24  code  to  do  the 
histograms  and  any  other  SCREENS  copies. 

There   is  a  very  thorough  manual   provided  with  the  software  and 
the  following   is  a  brief   summary  of   some  highlights  and 
comparison  with  Uu-Calc,    where  appropriate: 

1.  First   and  foremost    <*> :    there   is  no  provision  for  saving  or 
loading  data  via  disk  drive.    This  must   all   be  done  on  cassette 
tape.    Jack   says  he   might   try   to  modify   the   code   to   handle  disk 
drive  saves  and   loads   if   there   is  enough   interest    <ie,    if  enough 
people  order  copies  of    the  program,    I  would  guess).    I  did 
however  find  that   an  HMI  save  could  do  the  job  quite  well,  with 
some  reservations.    This   is  done  by  pressing  the  Larken  MMI 
button,    then  pressing  the  appropriate  key   <1  fo  4).    The  program 
uses  18  tracks  but   that    is  no  problem.    Loading  this  back  merely 
requires  the  command  < RANDOMIZE  USR  188:    LORD     NMI-S1 . CM'CODE> 
for   one  saved  using   the  <1>  key. 

Note   <*):    There   is  a  Spectrum  version  which  allows  the  use  of 
nicrodrives  and  RS232   interface  as  well   as  networking.    I  am  not 
able  to   investigate  these  options. 

2.  My   loader   allows   for   the  setting  of   printer  parameters  Cleft 
margin,    line   length,    PICR,    ELITE   or   CONDENSED  mode).    If    the  data 
is    loaded   via   tape,    all    printing   works   as   expected.  However, 
when   loading  via  NMI,    the  printer  driver  must   be  preset   and  I 
did  this  using  my  Omnibus  <Set   Printer)   option.    Rlso,  if 
histograms  are  to  be  printed,    the  Graphics  24  code  must  be 
preset   at   this  time.    Other  bit-image  copying  utilities  could  be 
used  by  doing  a  SCREENS  save  via  NMI   first  ;    eg,    you  could   save  a 
SCREENS  and   load   it    into  Pixel   Print   to  use   its  graphics 
printing  option. 

3.  I  have  tested  the  histogram  option   and   it   appears  to  work 
quite  well.    Via   tape,    there   is   a  choice   to   save  or    load  either 
data  or  workarea .    The  workarea  option  allows  values  to  be 
transferred  back  and  forth  between  the  spreadsheet   and  the 
workarea.    The   latter  has  many  uses,    among  them  being:  the 
plotting  of   histograms;    moving  values  around  within  the 
spreadsheet    <ie,    columns  or  rows);    communicating  between 
spreadsheets.    The   last   application  could  be  used,    for  example, 
to  move  the  closing  balance  from  the  end  of   one  year's 
spreadsheet   to  the  beginning  of   the  next   year's  spreadsheet. 
Such  transporting  of   work  areas  would  require  their  saving  and 
loading  via  tape  until   the  program  is  modified  for  disk  drive. 

4.  Input   error  detection   is  provided  through  different  BEEP 
sounds  or  error  messages;    this   is  quite  effective   in  keeping  you 
on   track,    fl    list   of    error-  messages    is   contained   in   the  manual. 

5.  Values  may  be  expressed   in   t wo-dec i mal -p 1 ace  format  or 
integer  format.    It's  all   one  or  the  other,    though,  unlike 
Uu-Calc  which  allows  some  columns  to  be  displayed   in  one  format 
and   others    in   a  different   one.    The   result    is  a  minor  irritation 
Ceg,    188  days   shows   as  188.88). 

6.  Depending   on  the   spreadsheet    size,    calculations   are  very 
quick  compared  with  Uu-Calc  and  saves  via  tape  are  quite  short. 
Use  of   tape    is  not    much  of    a   problem  but    seems  rather  archaic. 
Iterative   <ie,    repetitive)   calculations  can  be  performed  and 
there   is  much  more  detail   on  this   in   the  manual. 


16 


SINC-LINK 


7.    Uery    large   numbers   can   be   handled   but    you   must    reserve  TWO 
columns   for   large  numbers  and   input    them   into  the  right  column 
since   display  of    large   numbers   is   spilled   over    into   the  left 
column.    This    is   a  vast    improvement    over   Uu-Calc    if  you 
for    large  numbers. 


have  need 


8.  Equations   are  similar   to  formulas    in   Uu-Calc   but    values  at 
the   cursor   position   can   be   viewed  via   a   separate  option 
<D:Decode>.    It   also   returns   codes   to   signify    if    a  cursor 
position   contains   a   blank,    value,    text,    row  total,  row 
sub-total,    column   total    or   column  sub-total. 

9.  The   size   of    a   spread   sheet    can   be   up   to   99   columns   siciross  or 
258  rows  deep;    that    is  significantly   more   than  the  58  by  58  grid 
of    Uu-Calc.    Rll   the   mathematical    functions   of    the   TS2868   can  be 
used  making   it   easy  to  build  up  sophisticated  models  for 
financial,    engineering  and  other  applications  which  might 
include   tax  bands,    differential    interest   rate,  conditional 
expressions  and  variable  overheads. 


18.  The 
Sinclai 
15  rows 
char act 
can ' t  h 
is  done 
screen 
Shift  k 
wi  ndow. 
times  t 


screen  di 
r  characte 

at  a  time 
er— per— 1  in 
ave  everyt 

in  t wo  mo 
i s  sh i f ted 
ey  not  pre 

But  at  le 
o   let  you 


splay   in  the  32-charact er-per- 1 i ne  standard 

r  set   shows  a  window  of   only  three  columns  and 

plus  the  column  and  row  headings,    ft  64 
e   font   would   have   been   an    improvement    but  you 
hing.    Using   the   arrow  keys   to   move  the  cursor 
des :    with  the  Caps  Shift   pressed,    the  whole 

one  column  or  row  at    a  time.    With  the  Caps 
ssed,    the  cursor  moves  about   the  current 
ast   the  headings  stay  on  the  screen  at  all 
know  where  you  are,    unlike  Uu-Calc. 


11.  Text   can  be  entered   into  any   location  where  the  cursor  is 
resting  but    is   limited   to  all    letters   Call   Capitals),  all 
numbers,    all   punctuation  marks  and  arithmetic  operators  which 
occupy  only  one  character.    Only  the  first   seven  characters  are 
accepted   and   spaces   count    as   a  character. 

12.  There  is  an  option  <V>  for  Vear  which  provides  a  fast  method 
of   feeding   in  the  months  of   the  year,    either   in  columns  or  rows. 

In   summary,    Onnicalc   2   is  recommended  to  those  who  are  looking 
for  something  better   than  Uu-Calc;    there  are  a  few  shortcomings 
but   on  balance,    it   does  a  good   job   and  should  satisfy  most 
requirements.    It    is   priced   at  US$18.88. 

Finally,    Jack  Dohany  also  provided  a  Public  Notice  dated  Jan  1, 
1991   which   in   part    advises   that   he    is   out    of    the   business  of 
supporting  the  TS2868  and  that   he  will   now  concentrate  on 
programming   and  developing   hardware   for    it.    Anyone  wishing 
copies   of    programs   he   formerly  offered   should   now  write  to 
e  i  t  her : 

RMG  Enterprises 
1419   1/2   7th  Street 
Oregon  City 
OR  97845 

or 

Ed   Grey  Enterprises 
PO   Box  2186 
Ing lewood 
CR  98385. 

Prepared   by  Bob  Mitchell  918121. 


SINC-LINK 


TS2068  COMPUTER  REPAIRS 


Richard  Burt  wrote  to  me  about  his  experience   in  getting  his  Ts2068 
repaired.    I  think  meny  members  would  be   interested   in  hearing  of  his 
experience.   We  have  published  Dan  Elliot's  repair  list   in  a  recent  issue 
of  Sine  Link.  Richard's  address  is: 

R.R.    #5     Box  157 

Bel  I ev  i 1 1 e,   Ont . , 

CANADA     K8N  UZ5 

In  your  last  letter  to  me  you  ask  for  an  article  that  might 
be  of  interest  to  club  members,     well  I  don't  know  if  this  is  an 
article  or  a  report  on  a  personal  experience  that  happen  to  me. 
I  will  call  this  "IS  THERE  LIFE  AFTER  DEATH".     This  may  sound 
like  a  spiritual  question,  but  to  any  one  who  has  had  a  Sinclair 
computer  die  on  them,  they  may  have  ask  that  very  question.  In 
Nov.   I  had  one  of  my  TS2068  die  on  me,  it  would  not  initialize, 
and  the  screen  display  was  half  there.     I  made  a  few  phone  calls 
to  see  if  anyone  could  repair  this  and  I  was  turned  down  by 
qualified  people  citing  no  repair  experience,     I  was  able  to  buy 
another  backup  unit  from  you.       I  then  gave  a  call  to  Dan  El  1 iot 
of  Promise  Land  Electronics,  now  called  Computer  Classic,  to  see 
if  it  could  be  repaired,     and  after  a  conversation  with  Dan,  I 
decided  to  send  the  computer  to  him.     On  Dec  10/90  I  sent  the 
computer  by  parcel  post,  with  insurance  to  Mr.  Elliot,     and  on 
Jan.  17/91  I  received  my  computer  back,  that  same  night  I 
unpacked  the  unit  and  hooked  it  up,  and  turned  it  on.  The 
computer  initialized  and  has  been  working  ever  since,  so  the 
answer  to  the  above  question  is  "YES" .     I  highly  rec commend 
Dan  Elliot,   for  repairs  to  Sinclair  computers,  his  repair  prices 
are  very  reasonable,  and  his  work  is  first  rate.     I  have 
included  a  copy  of  Dan's  repair  prices  and  instructions,  with 
this  letter. 

I  now  have  an  extra  TS2068  that  I  am  willing  to  loan  out  to 
any  club  member,  in  Ontario  or  Quebec  that  needs  one,  while 
thier ' s  is  getting  repaired,  if  they  pay  the  shipping  cost  both 
ways,  and  if  they  damage  it,  will  agree  to  repairs  to  it.     I  am 
trying  to  get  another  QL  for  the  same  purpose.     I  have  a  friend 
that  is  in  need  of  a  16K  or  32K  ram  pack  for  a  ZX81,   if  you  know 
anyone  that  has  one  for  sale  let  me  know.     That's  it  for  now. 

RJB 


SINC-LINK 


2X81  -  TS1000  NEWS 


By  Jeff  Taylor 

The  biggest  thing  to  hit  the  2X81  library  in  years  arrived  in 
the  mail  last  week.  No  less  than  17  High  Resolution  programs  and 
games!  For  those  users  who  invested  in  the  Hunter  board,  the 
SCRAM  board  or  built  the  on-board  NVM,  this  is  like  a  dream  come 
true . 

High  resolution  for  the  2X81  you  say?  Instead  of  the  blocky 
low  resolution  (44x64)  how  would  you  like  to  see  resolution  of 
256x176  dots  on  your  screen?  With  an  add-on  Hunter-style  board 
or  a  small  on-board  circuit,  this  kind  of  resolution  is 
avai lable . 

Much  of  the  hi-res  software  developed  in  North  America  was 
done  by  the  team  of  Greg  Harder  and  Fred  Nachbaur  (and  Wilf 
Rigter) .  I  contacted  Mr.  Harder  in  early  February  with  a  request 
for  any  information  he  might  still  have  on  the  hi-res  programs. 
He  was  surprised  to  hear  that  anyone  would  still  be  interested 
in  the  old  doorstop  and  graciously  offered  to  copy  what  he  had 
remaining  for  us  as  long  as  we  covered  the  costs  of  mailing  and 
tape.  Less  than  three  weeks  later  two  tapes  chock  full  of  high 
quality  recordings  and  their  manuals  arrived.  Some  of  the 
programs  require  extra  memory  (32k+)  but  several  will  run  with 
just  the  16k  Rampack. 

The  programs  range  from  drawing  packages  to  detailed  adventure 
games,  from  mathematical  art  to  arcade  games.  There  is  even  one 
that  offers  the  option  of  using  a  joystick  if  you  have  the 
correct  interface. 

For  more  info  on  hi-res,  contact  Rene  Bruneau  or  myself.  The 
tapes  will  go  into  the  2X81  tape  library. 

Does  anyone  know  where  Fred  Nachbaur  is? 


ZX81  -  TS1000  Hi-Res  Printouts 
SINC-LINK 


Larry  Crawford  910222 

A  couple  of  years  ago,  George  Chambers 
put    together    a    super    program  which 

permitted  files  on  a  Larken  disk  to  be 
loaded  with  a  single  keystroke.  My  kind 
of  utility.  I  modified  it  somewhat.  With 
George's  permission,  here  it  is. 

There  are  a  couple  of  techniques  used 
which  could  be  useful  in  other 
applications,  so  read  on. 

The  listed  program  will  create  an 
AUTOSTART  disk  menu  on  a  designated 
disk.  The  entry  point  is  line  8888.  At 
this  point  you  are  prompted  to  enter  the 
number  of  the  drive  to  be  processed 
(dd). 

F2NDBMQ  WE  ACTIVE  BBSVE 
The  Larken  system  stores  the  active 
drive  number  at  location  8195  in  the 
LKDOS  RAM.  To  find  this  number  it  is 
necessary  to  Larken  POKE  8200  with  8195. 
<LET  s=USR  110>  assigns  to  s  the  value 
stored  at  that  location.  This  is  really 
a  flag  with  the  appropriate  bit  set . 
Variable  s  will  have  a  value  of  2,  4,  B9 
or  16  depending  upon  which  drive  is 
active.  The  Boolean  calculation,  <LET 
sd-TNT  (s/4-  (s>8) ) > ,  converts  the  value 
of  s  to  an  actual  drive  number.  Drive  4. 
the  RAMDTSK,  has  a  code  of  128  and  is 
not  looked  after  here.  However,  it  would 
not  be  used  frequently  and  can  be  dealt 
with  manually. 

In  another  application,  this  source 
drive  number  could  be  poked  into  a  safe 
RAM  location  (e.g.  26687)  for  use  later 
on.  In  this  program  there  is  no  need  to 
keep  the  drive  number. 


since  they  are  not  needed  by  the  menu 
program. 


By  using  the  Taswide  utility,  it  is 
possible  to  read  a  Tasword  file  directly 
from  the  disk  without  having  to  load  it 
into  Tasword.  This  is  a  very  useful 
feature  for  help  files  and  lengthy 
descriptions  of  programs  on  the  disk. 

Assuming  that  is  resident,  the  code 
"taswi  .Cx"  is  loaded  from  the  source 
drive  and  saved  to  the  destination 
drive. 

IF        DON'T  HAVE  TASiaJXBE 
Omit  all  of  line  8888  except    for  the 
destination  drive  input.  Also  omit  lines 
3  and  92    and    the    subroutine    5000  to 
5030. 


Control  passes  to  line  9999,  the  SAVE 
line.  The  variables  are  cleared  out  and 
RAMTOP  is  poked  with  256  bytes  more  than 
the  value  stored  in  ELIN.  The  two  PEEKS 
and  POKES  do  this. 

Setting  RAMTOP  this  way  for  the 
AUTOSTART  SAVE  allows  you  to  add  to  the 
menu  without  having  to  worry  about 
exceeding  the  current  value  of  RAMTOP. 

You  are  prompted  to  press  the  <D>  key 
for  the  save  and  USR  102  is  called  to  do 
the  job.  Control  now  goes  to  line  8003. 


In  line  8000,  thirty-two  bytes  are 
poked  into  the  unused  area  of  RAM 
starting  at  24311  (it  runs  to  24560). 

Here  is  the  dissassemblys 

DI 

CALL  0062         (98  dec) 
XOR  A 

LD  (201D),A  (8221  dec) 
LD  (2020), a  (8224  dec) 
CALL  007E  (126  dec) 
CALL  007B  (123  dec) 
LD  HL,3204  (12804  dec) 
LD  DE,6824  (26660  dec) 
LD  BC,0010  (16  dec) 
LDIR 

LD  A  (0064)    (100  dec) 
EI 
RET 

The  USR  call  to  24311  moves  the 
16  characters  of  the 
another  unused  area  of  RAM  starting  at 
26660  (it  runs  to  26687).  The  program  is 
then  RUN. 

data  m&mmm 

Lines  100  to  1000  are  reserved  for 
DATA  statements.  Each  statement  must 
contain  two  strings  of  data.  The  first 
is  a  description  of  the  program  as  it 
will  appear  on  the  screen  in  the  disk 
menu.  The  second  one  is  the  exact 
program  name  as  it  appears  in  the  disk 
catalog. 


turn  on  LKDOS 
a^0 

current  track  # 
error  number  ='-0 
turn  on  track  0 
Id  bufr  frm  dsk 
loc  of  dsk  name 
loc  for  name 
length  of  name 
move  name 
turn  off  LKDOS 


first 
disk    name  to 


Line  8889  deletes  line  8888  and  itself 


Lines  10  and  11  recover  the  disk  name 
from  its  storage  area  in  RAM  and  assigns 
it  to  x$. 

Line  20  reads  the  data  lines  starting 
at  100  and  prints  an  identifying  letter 
and  the  first  data  statement  to  the 
screen  via  subroutine  7000.  The  process 
continues  until  it  hits  the  dummy 
statement  at  1001 . 


SINC— LINK 


Lines  50  to  90  prompt  you  to  press  a 
letter  key  within  range  and  then  a  loop 
reads  the  data  lines  until  the  selected 
one  is  reached. 

Line  91  assigns  to  t$  the  extension 
symbols  of  the  file  name.  The  file  is 
then  LOADed  as  the  appropriate  type  by 
line  92,  94,  or  98  depending  on  the 
contents  of  t$. 

After  the  program  is  typed  in,  SAVE  it 
as  "dmm.BI"  LINE  8888. 

USXMQ  "THE  DISK  r@*U  mm 

Load  "dmm.BI".  Place  a  disk  in  the 
destination  drive.  This  disk  can  be 
blank  or  have  programs  on  it  but  there 
must  be  at  least  2  free  blocks  available 
for  the  AUTOSTART  and  another  one  for 
Taswide  if  you  are  using  it. 

You  will  be  prompted  to  enter  the 
number  of  the  destination  drive.  Once 
this  is  entered,  "taswi.Cx"  will  be 
loaded  from  the  source  drive  and  saved 
to  the  destination  drive  (if 
appl icable) . 

The  tune  will  play  and  you  will  be 
prompted  to  press  the  <D>  key.  The 
"blank"  disk  menu  program  will  now  be 
saved  as  an  AUTOSTART  on  the  disk  in  the 
destination  drive. 

USING  THE  DISK  miJ 

After  booting  the  AUTOSTART  on  the 
disk  in  the  active  drive,  <BREAK>  in 
after  the  menu  screen  appears.  Add  the 
appropriate  DATA  lines  starting  at  line 
100. 

A  typical  line  will  look  like  this: 
<  100  DATA  "RABBIT'S  REVENGE" , "rr .B1"> , 
the  first  statement  being  the 
description  which  will  appear  in  the 
menu  and  the  second  the  exact  name  of 
the  file  to  be  loaded. 

Then  <G0  TO  9999 >  to  resave  the 
amended  menu  as  an  AUTOSTART. 

Whenever  a  program  is  added  to  the 
disk,  repeat  this  procedure. 

The  whole  process  is  relatively 
painless  and  very  useful.  I  recommend  it 
highly.  LDC 


LINE  DELETE  FOR   THE  SPECTRUM 
by  G.  Chambers 

Unl  ike  the  2068  computer, 
the  Spectrum  does  not  have  a 
BLOCK  DELETE  function.  The 
following  m/c  program  for  the 
Spectrum  makes  the  job  of 
deleting  a  block  of  Basic 
program  I ines  almost 
instantaneous.    To  use  the 
facility  simply  merge  lines  9000 
to  9090  with  the  program  you 
want  to  trim,   and  type  GOTO 
9900.   Or  you  could  save  the 
machine  code   itself  and  then 
type   in  I ines  9930  to  9980. 

The  code   is  re  I ocatab I e  and 
can  be  loaded  into  any  other 
part  of  RAM  by  changing  line 
9905.   As   it  stands  CLEAR  31999 
should  be  entered  before  the 
program  is  run. 

This  utility  was  lifted  from 
the  April    '85  issue  of  Your 
Computer,   page  127.  Credit  to 

Rodney  Francis 


8990  REM        DELETE  function 
for  the  Spectrum 

9900  INPUT  "Address  to  instal  co 
de  "°fc 

9910  FOR  n=c   TO  c+52 
9920  READ  d:  POKE  n,d 
9930  NEXT  n 

99i*0  INPUT  "First  Line  ";  f 

9950  INPUT  "Last  Line  ";  I 

9960  POKE  23296, f -256* I NT  (f/256 

):   POKE  23297, INT  (f/256) 

9970  POKE  23298, I -256* INT  (1/256 

):   POKE  23299, INT  (1/256) 

9980  RANDOMIZE  USR  c 

9990  DATA  237 ,91 ,0,91 ,  U2,  2,91 ,  22 

9,  167,237,82,225,216,  122,  179,200 

,62,39,  188, 216, 32, U, 62,  15 

9995  DATA   189,216,235,213,205,  11 

0,  25,  209,  1 92,  229,  235,  205,  1  1 0,  25, 

209,  1 92,213,  35,  35,  9U,  35,  86,  35,  25 

, 209, 205, 229, 25, 20 1 

9998  STOP 

9999  PRINT  USR  100:  SAVE  "delete 
,B1" 


SINC-LINK 


21 


SOME  POPULAE  MISCONCEPTIONS 
(Mostly  about  filenames). 

From  time  to  time  I  read  in  an  article  or 
letter  about  the  QL  statements  that  I  know  to  be 
untrue  or  at  least  misconceived.  Sometimes  the 
same  misconceptions  occur  over  and  over  again. 
The  following  comments  arise  from  a  recent  (Jan 
90)  issue  of  QL  World  and  the  final  issue  of  a  US 
newsletter  called  Quantum  Levels,  which  started 
with  high  hopes  as  a  bimonthly  in  August  1986  but 
only  managed  12  issues  in  three  years. 

Basic  Filenames. 

Many  people  seem  not  to  realise  that  there  are 
two  ways  of  presenting  QDOS  commands  with 
filenames,  and  that  the  rules  for  allowable 
characters  differ  between  them.  In  each  case 
there  is  a  limit  of  36  characters  in  addition  to 
the  five  which  define  the  device   (e.g.   mdv2_) . 

1 .  The     normal       method       of       supplying  a 
"parameter"         consisting      of        unadorned  ascii 
characters     when  only     normal  letters,     numbers  and 
the  underscore  character     "_"     are     accepted,  e.g. 
LOAD  mdvl_my_progl . 

2.  QDOS  will  also  accept  strings,  otherwise 
it  would  be  almost  impossible  to  write  file 
handling  programs.  (I  think  early  versions  of  the 
QL  only  worked  this  way. )       By  a  string  I  mean 

i.  a  set  of  characters  in  quotes  e.g.  SAVE 
"f lpl_!@#$" , 

ii.  a  string  variable  to  which  a  string  of 
characters  has  been  assigned  e.g.   COPY  a$ , b$ 

iii.  a  string  function  e.g. 

MERGE 

dev$& " _ " &paa$&CHR$ (233) .  In  these  cases  the  only 

restriction  is  that  the  first  five  characters  must 
be  a  legitimate  device  name  followed  by  an 
underscore,  the  rest  can  be  anything  you  can  type 
in  at  the  keyboard,  and  even  unprintable  characters 
(use  CHR$()  as  above).  Thus  you  could  create 
files  with  unprintable  names  that  would  be  almost 
impossible  to  delete  without  reformating  the  medium 
if  there  were  any  point  to  this!  Some 
commercial  programmers  have  used  filenames 
consisting  entirely  of  spaces,  which  are  invisible 
in  a  normal  listing  -  I  once  discovered  one  on  a 
disk  someone  sent  me  that  read  "FORMAT  flpl_: FORMAT 
flp2_"  that  was  named  "  " ;    luckily  I  discovered 

it     using  my  Ftidy  program  before  it  was  activated. 

As  far  as  I  can  see  these  rules  apply  to  all 
commands  that  take  filenames  in  the  QL  ROMs  and  in 
Toolkit  II,    such  as  RENAME. 

FORMAT  also  works  in  the  same  way  as  far  as 
medium  name  is  concerned;  that's  how  they  got  the 
date     in     the       form  '  9\9\85       on     the       early  mdv 

SINC-LINK 


cartridges . 

You  can  even  put  one  totally  nameless  file 
onto  each  medium;  e.g.  SAVE  flpl_  creates  such  a 
file.  The  file  can  be  BASIC,  text  or  machine 
code,  and  is  available  to  any  of  the  commands 
referring  to  a  single  file  name.  However,  DIR, 
and  any  commands  or  programs  which  make  use  of  the 
directory,  fail  to  recognise  the  file  at  all.  If 
you  suspect  such  a  file  may  be  lurking  about  on  one 
of  your  disks/cartridges  you  can  reveal  it  by  COPY 
f lpl_, mdv2_secret  (or  something  similar  -  COPY 
flpl_,scr_  also  works).  If  a  file  called  "secret" 
appears  on  your  target  device,  then  it  is  secret  no 
more  and  now  available  to  all  the  normal 
manipulations . 

Psion  Filenames. 

It  is  fairly  common  to  read  that  Quill  files 
must  have  the  extension  _doc,  export  files  must 
have  the  extension  _exp  etc. ,  This  is  not  so, 
these  are  merely  the  defaults  that  the  Psion  suite 
uses  if  provided  with  nothing  else.  While  you  are 
restricted  to  a  maximum  of  eight  normal  letters  and 
numbers  for  the  main  part  of  the  name  and  there 
must  be  a  thre  character  extension  you  can  use  any 
three  characters  that  can  be  obtained  from  the 
keyboard  for  the  extension.  You  must,  however,  type 
them  all  in  when  you  want  to  save  or  load  the  file; 
"letter_@#$"  is  quite  acceptable  as  a  quill  file 
name  for  example.  You  can  import  any  ascii  text 
file  into  quill  too,  but  it  must  also  fit  these 
rules,  so  you  may  have  to  COPY  it  to  a  regulation 
filename  (or  rename  if  you  have  the  facility. )  It 
is  the  file  header  itself  that  distinguishes  quill 
files  from  abacus  files  etc.  and  not  the  extension 
as  is  often  thought.  I  use  a  three  character  date 
code  on  all  my  letters  e.g.  Michael_B12  means  a 
letter  to  Michael  written  on  November  12th  (to  me 
at  any  rate ! ) 

More  Psion  tricks 

Shift     +  F5     refreshes  the     screen  in     all  the 
programs,   but     for     some     reason     is  undocumented. 
(Much  better  than  F2  twice!) 

Have  you  discovered  that  CTRL  +  down-arrow 
deletes  from  the  cursor  to  the  end  of  the  line,  and 
CTRL  +  up-arrow  from  the  cursor  to  the  beginning  of 
the  line? 

Howard  Clase,  Tel   ( 709 ) -753-6415 

Box  9947,   Station  B, 
St  John's, 
Newfoundland , 
CANADA,   A1A  4L4. 


SINC-LINK 


ZX  RESOURCES 


R.  Bruneau 


The  hardware  project  presented  this  month  is  a  parallel  interface 
using  the  Z80  PIO  chip  manufactured  by  Zilog.  The  interface  is 
fully  decoded  using  Tim  Stoddard's  design  published  in  Time  Designs 
Magazine  for  his  article  "ZX81  Data  Acquisition  Module"  (  Real-time 
Clock  and  Auxiliary  Port)  and  is  compatible  with  the  2068  and  ZX81 
data  bus  at  the  back  of  the  computer. 

The  printed  circuit  provided  is  laid  out  to  provide  a  Centronics 
compatible  port  suitable  for  driving  a  big  printer  without  losing 
the  flexibility  of  providing  two  input/output  ports.  The  Z80  PIO 
ports  A  and  B  can  be  programmed  as  input,  output,  bi-directional 
or  bit-controlled  by  sending  a  control-word  to  internal  registers 
that  configure  the  ports  as  required.  For  use  as  a  printer 
interface,  Port  A  is  configured  as  input,  and  Port  B  is  set  up  as 
output.  We  are  checking  MSCRIPT  and  TASWORD  for  compatibility  and 
will  report  the  software  modifications  required  in  the  May/ June 
newsletter. 

Address  locations  for  accessing  the  ports  are  as  follows: 

Port  A,  Data  53H  83D 

Port  B,  Data  57H  87D 

Port  A,  Control  5BH  9 ID 

Port  B,  Control  5FH  95D  (H=hex,  D=dec) 

Programming  of  the  PIO  is  done  by  sending  a  control-word  to  the 
correct  register. 

In  Hexidecimal  In  Decimal  Mode 

OF  15  port  is  output 

4F  79  port  is  input 

8F  143  bi-directional 

CF  207  bit-controlled 

Example:  To  define  Port  A  as  an  output  in  a  2068  system  could  be 
done  as  follows: 

OUT  91,15 

OUT  83, (your  data,  a  number  from  0  to  255) 


001 

REM  AAAAAAAAA 

090 

POKE  X+7,»3 

010 

LET  X=16514 

110 

PRINT  MN=n; 

020 

POKE  Xf62 

120 

INPUT  N 

030 

POKE  X+1,15 

125 

IF  N<0  THEN  STOP 

040 

POKE  X+2,211 

130 

PRINT  N 

050 

POKE  X+3 , 91 

140 

POKE  X+5,N 

060 

POKE  X+4f62 

150 

LET  A=  USR  X 

080 

POKE  X+6,211 

160 

GOTO  110 

ZX81  Listing 


SiNC— LINK 


so 


.O 


Q  o  o  q  o  ©  ft  q    o  o   o  o  o 


SINC-LIIMK 


Another  Printer  Tip 
ZX81/TS  1000 

Sebastien  Boisvert 

My  recent  printer  tip  articles  allowed  you  to  COPY  a  specific 
line,   COPY  a  number  of   lines,   so  I  fiqured  that  a  routine  to 
COPY  a  block  of  lines  would  also  be  usefull.   First,  make  a  1  REM 
with  12  bytes  in  it  and  enter  the  rest  of  the  program.   Next,  RUN 
110  and  enter  the  code  at  the  bottom  of  the  page.   Then  delete 
lines  110-140  and  there  you  have  it! 

10  PRINT  "NUMBER  OF  LINES  ?" 

20   INPUT  A 

30  POKE  16515, A 

40  PRINT  "START  LINE  ?" 

50   INPUT  A 

60  LET  A=(A-1)*33 

70  RAND  A 

80  POKE  16520, PEEK  16434 

90  POKE  16521, PEEK  16435 
100  RAND  USR  16514 
110  FOR  F=16514  TO  16525 
1-20   INPUT  A 
130  POKE  F , A 
140  NEXT  F 

The  code:  22,0,42,12,64,1,0,0,9,195,110,8 


DATA-READ-RESTORE  ON  A  TS1000 
by  Sebast ten  Boisvert 


In  our  last   issue  of  Sine  Link 
(Jan/ Feb  1991  Page  8)  we  ran  an 
article  with  the  above  title. 
Regrettab I y,   we  did  not  include 
several  program  listings  that  went 
with  it. 
Here  they  are: 


LISTING  I 

1  FOR   ==15514  TO  15520 

2  INPUT  H 

3  POKE  P:H 

4  NEXT  F 


LISTING  2 


us 

115 

0 

0 

0 

0 

33 

132 

54 

117 

115 

■if; 

54 

0 

201 

42 

132 

54 

55 

134 

54 

157 

32 

31 

229 

237 

91 

12 

54 

235 

23~ 

52 

225 

£0 

59 

125 

254 

234 

40 

- 

24 

237 

35 

125 

254 

S 

32 

243 

35 

52 

1 

50 

134 

54 

235 

42 

15 

54 

1 

5 

0 

9 

235 

52 

0 

50 

135 

54 

125 

25- 

25 

40 

19 

254 

115 

40 

10 

23" 

150 

229 

135 

5-4 

52 

225 

24 

237 

52 

0 

=?0 

134 

54 

34 

132 

54 

5 

0 

33 

135 

54 

75 

201 

207 

23 

LISTING  3 

HtCLEPP 

2  DIM  25 '.32  i 

3  LET  REST =15520 

4  LET  PEPD=1S530 

5  PPND   USP  PEST 


LISTING  4 


1  OLEPR 

2  DIM  2  5 132 ; 

3  LET  PE5T=1S520 

4  LET  RERD =15530 

5  RPND   USP  PEST 
10   FOP   F=l  TO  3 

20  LET  H$=Z|i    TO   USP  PEPD; 
30  PRINT  H$ 
40   NEXT  F 

50  LET  P=UPL  Z$ i    TO   USP  PEPD 
SO   PRINT    "RESTORE  PDDRESS :  """"  - 
70  LET  P=UPL   25  1    TO   USP  PEPD 
SO  PRINT   ::RERD  PDDRESS  :    ;  P 
90   PRINT  25  i   TO   USP  HERD) 
100  PRINT  25?    TO   USR  REPD) 
110   REM  W75    1000   OOMPUTER  :DPT- 
REPD /RESTORE  PROGRRn , PEST , 1553D 
OUT   OF  DPTP   ERROR : 


SINC-LINK 


TPS  System  Repair 


by  Jeff  Taylor 

Just  after  Christmas  I  had  a 
look  at  Lyman  Paquette's 
defective  TOS  disk  system.  This 
is  the  system  that  Timex  of 
Portugal  developed  for  the 
Spectrum  in  the  mid-eighties. 
TOS  stands  for  Timex  Operating 
System.  It  was  sold  in  the 
U.S. for  the  TS2068  (with  a 
Spectrum  bus  adapter)  by  English 
Micro  Systems  and  Zebra  Systems 
and  is  often  referred  to  as  the 
Zebra  disk  system. 

Anyway,  Lyman  had  borrowed  my 
TOS  system  to  compare  with  his 
and  had  quite  rightly  determined 
that  the  fault  lay  with  the 
interface  module  (the  unit  with 
the  reset  button) .  I  offered  to 
have  a  closer  look  and  try  to 
fix  the  problem.  A  little 
troubleshooting  revealed  that 
the  fault  was  one  of  two  chips 
on  a  small  board  which  was 
piggybacked  to  the  main 
interface  board. 

"No  problem".  I  thought ,  " I ' 1 1 
just  replace  both  chips  and 
we'll  be  back  in  business". 
Wrongo,  one  of  the  chips  had  had 
its  identifying  numbers  ground 
off.  Literally.  I  could  see  the 
marks  where  someone  had  actually 
used  a  sanding  disc  on  the  chip. 
Why?  To  prevent  the  average  home 
handyman  from  repairing  these 
things  instead  of  sending  it 
back  to  the  dealer,  I  guess.  The 
trouble  is...  there  are  no 
dealers  anymore!  My  system  was 
no  help,  the  same  chips  were 
ground  down.  What  to  do? 

English  Micro  is  long  gone  but 
Zebra  still  exists.  I  called 
their  number  and  was  told  that 
they  no  longer  supported  TS 
computers.  I  already  knew  that 
but  after  pressing  a  little  more 
I  was  able  to  get  the  owner's 
phone  number.  Stuart  Newfeld  (I 
hope  thati spelled  correctly)  was 
very  helpful.  He  did  not  have 
any  replacement  parts  for  the 
TOS  system  but  he  knew  who  did. 

When  Zebra  got  out  of    the  TS 


market  all  their  TOS  parts  went 
to  Jack  Dohaney  (of  MSCRIPT 
fame).  A  call  to  Jack  in 
California  and  a  board  with  the 
phantom  PLA  (programmable  logic 
array)  chip  was  in  the  mail  the 
next  day.  Jack  has  also 
developed  a  board  which  combines 
the  interface  with  the  bus 
adapter  in  a  much  smaller  and 
neater  package.  He  also  included 
a  tape  with  a  new  set  of  disk 
utilities  and  he  did  all  this  on 
credit.  He  sends  the  stuff  then 
you  pay  him.  There  are  too  few 
businessmen  like  him! 

Once  the  new  board  was 
installed  properly,  the  moment 
of  truth  had  arrived.  Power  up 
and  presto,  the  system  booted 
perfectly.  Thanks,  Jack. 

Jack  says  that  in  the  very 
near  future  he  will  hand  all  his 
hardware  business  over  to  a 
dealer  to  tend  so  he  can  devote 
himself  to  more  programming.  He 
also  says  that  TOS  users  are  not 
limited  to  the  3"  drives,  any 
drive  should  work. 

My  thanks  to  all  the 
out-of-town  members  who  offered 
support  and  even  their  own 
systems(!)  while  I  was  repairing 
this  one.  Is  anyone  interested 
in  exchanging  info  about  this 
system?  While  my  Larken  system 
is  my  favourite,  I  would  like  to 
learn  more  about  TOS,  any 
takers? 

HiimiiiimiiiiiMMiiiiii! 


Disk  drive  controller  box  and  plug-in  interface 


28 


SINC-LINK 


HOU  TO  SQUISH  A  DISK 


to  'J 


Bob 


fl  i  t  c  h 


1  1 


918112 


Fragmentation  is  a  phenomenon  occurring  on  disk  storage,  in 
which  files  tend  to  get  broken  op  into  many  small  extents 
scattered  all  over  the  disk-  It  is  especially  prevalent  and 
serious  on  heavily  used  disks  that  have  suffered  erasures  and 
overwri ting . 


The 


rearrangement  of  data  on  a  disk  is  catted  compaction  or 
de  fragmentation;  it  is  also  known  as  SQUISHING  and  is  usually 
done  by  a  special  utility  program.  The  object  of  squishing  is  to 
accelerate  data  storage  and  retrieval  thus  improving  the  overall 
performance  of  the  system.  The  squished  disk  will  respond  much 
more  quickly  to  header  readers  tike  Fullcat  and  prevent  the 
drive  head  from  moving  frantically  back  and  forth  searching  for 
the  various  extents  c tracks  or  blocks  in  the  Larken  system; 
sectors  in  others)  of  each  file.  Uhen  a  disk  is  badly  fragmented 
or  when  a   catalogue   is  sorted,    the  disk  should   be   compacted - 

Compaction  must  be  accomplished  Cat  least  for  the  Larken  system) 
by  using  a  utility  that  copies  the  disk  file  by  file  ,  never 
track  by  track,  such  a  file  is  the  Disk  File  Manager  by  Jack 
Dohany  which  is  available  from  the  club  library.  Another  choice 
would   be  Richard  Hurd's  copymachine. 


drive  and 


mark 
the 


TO    squish    a  disk: 

1.  Load   the   copy  program    (eg,   Disk  File  Manager). 

2.  Put   the  disk   to     be     copied     into     the  source 
freshly-formatted  disk        into   the   target  drive. 

3„   select   the  source  drive  and  when   the   catalogue  appears, 
the   files  with  an  X  by  pressing  I,    then  press     M     to  start 
houe   (copy)   process.   Repeat  the  process  as  required 
all    files  on   the  source  disk. 

4..  Using  a  disk  rename  utility,  give  the  target  disk  its  proper 
name  as  this  was  not   copied   from  the  source  disk. 

and  extent 


Terms  used  above  such  as  squish,  compact 
are   taken    from  the    following  sources: 

1.  The  New  American  Computer  Dictionary  by 
by  Signet  1985. 

2.  Barron's  Dictionary  of  computer  Terms 
Downing  and  Covington  published   by  Barron's 


fragmented 
Kent  Porter  published 
Edition  by 


Second 
1989. 


^  {  ^fx:reS^ 


WORDMASTER  TIP 
Lionel  Keeping  sends  this  tip 
for  Wora master  on  the  Larken. 

"If  you  want  to  save  disk  space 
you  can  save  several  small  files  on 
one  track  from  the  file  handling 
menu  and  thus  save  some  space.  For 
example,  my  letters  to  UPDATE 
magazine  are  all  fairly  short  but 
eacch  would  take  up  one  track  if 
stored  separately.  If  I  store 
several  of  them  in  one  disk  file 
(still  keeping  them  as  separate 
WORDMASTER  files  in  memory)   I  can 
save  one  or  two  tracks.   It  also 
helps  keep  track  of  them  all  since 
they  are  in  one  disk  file.   I  do  the 
same  thing  for  some  of  my  letters  to 
you,  but,  as  in  the  case  of  this 
one,  they  usually  take  up  an  entire 
track  by  themselves." 

Lifted  from  a  recent  letter  to  me. 
G.F.C. 


SINC-LINK 


29 


LAN 


o  r 


Local 
US  ING 


3  a  1ST 
"QL  ■ 

by  Hugh  H  Howie 


e  ±.  wo  g»  1c 


Do  you  really  know  how  fortunate  you  are  to  own  a  QL?  Do 
you  realise  the  power   and  versatility  at  your  finger 
tips? 

In  Toronto,  we  have  a  lonthly  paper  called 
TORONTO  COMPUTES,  This  is  a  free  publication,  where  the 
Computing  Industry  can  shout  its  wares.  Also  included  are 
■any  excellent  articles  on  the  latest  and  best  and  worst, 
in  the  coiputer  world,  in  general. 

The  January  issue  of  this  paper  has  quite  an  article  by 
David  Carter  extolling  the  virtues  of  LAN,  an  acronyi  for 
Local  Area  Network.  Sound  faiiliar?  It  should  do,  as  this 
is  what  we  in  the  QL  world  just  refer  to  as  "Networking". 

[  would  like  to  quote  soie  figures  froi  his  essay,  as  they 
are  very  interesting.  He  starts  off  by  saying  that  410, Ml 
Canadian  licros  are  already  connected  with  PCLANS,  and 
that  the  trend  is  expected  to  grow  to  three  sill  ion  by 
1993,  these  figures  according  to  a  forecast  by  IDC  Canada 
Ltd. 

He  goes  in  considerable  depth  into  the  whys  and  wherefores 
of  this  systei,  its  advantages  and  its  savingSo  How  it  is 
done  and  its  costs.  A  very  enlightening  explanation  of 
ail  it  can  do,  and  well  worthy  of  your  attention.  He 
■akes  the  subject  very  interesting,  even  a  couple  of 
diagrais  showing  a  typical  set-up  with  various 
peripherals  added.  According  to  Mr  Carter  the  only  costs 
for  peer-to-peer  are  $100  to  $201  for  the  network 
interface,  (one  for  each  Machine)  plus  the  $500  to  several 
thousand  dollar  cost  for  cabling  and  software.  If  you  have 
to  call  soieone  in  to  install  all  this,  that  would  cost 
soiewhere  between  $75  to  $200. 

This  would  appear  to  take  the  cost  to  set-up  three 
Machines,  to  be  in  the  region  of  at  LEAST  $800.  PLCS  the 
cost  of  the  computers.  More  on  this  later. 

The  first  in  what  would  appear  to  be  a  series  on  this 
subject,  and  froi  what  I  have  already  read,  [  look 
forward  to  the  coiing  essays. 

This   reminds  le  of  a  deio  I  gave  to  soie  QLers  a  short 
tiie  ago,  (Louis  Laferrier  wrote  about  it  in  the  last 
issue).  The  deio  showed  how  to  send  a  docuient  froi  13 
QL  to  the  printer  attached  to  ft.  I  also  had  soieone 
play  a  gaie  on  II,  and  was  able  to  ask  hii  froi  12  to 
place  a  prograi  in  drive  1,  so  that  I  could  load  it  to 
12.  It  was  all  a  latter  of  criss-cross  action  and 
prograis  and  data  being  transferred  back  and  forth. 


To  do  this  did  not  cost  le  $800  PLUS  the  cost  of  the 
coiputers.  All  I  did  was  use  3  QL's,  with  the  addition 
of  a  little  gadget  called  TK2  attached  to  each,   and  a 
cable  or  two  froi  ly  stereo,  to  connect  the  lachines. 
What  did  this  set-up  cost  le?  Well  you  all  know  that  the 


cost  of  a  QL  (an  orphan  coiputer?)  is  well  under  $100, 
and  that  the  little  gadget  called  TI2  is  about  $45. 
That's  it,  less  than  $150  for  each  lachine.  THAT 
INCLUDES  COMPUTE!.  A  total  of  $450.  Coiplete. 
Not  $800  PLUS  COUPUTEiS. 

Now  I  ai  not  going  to  suggest  that  the  QL  systei  is 
better  than  the  systeis  under  discussion.  All  I  ai 
saying  is  that  HI  AL1EADY  HAVE  IT.  Eight  here  in  the  QL. 
Adiittedly  the  QL  systei  has  its  limitations,  one  is 
distance,  (100  feet)  but  that  can  leas  across  an  office 
or  up  or  down  froi  floor  to  floor.  10  floors  -100ft? 

Why  do  not  lore  try  networking?  If  you  only  have  one  QL, 
get  together  with  a  friend  and  try  it  out.  All  you  need  is 
a  QL  and  TI2  at  each  station,  and  a  cable  to  connect  tbei. 
Yes  I  how  added  leiory  is  a  distinct  advantage,  but  not 
absolutely  necessary.  I  know  that  the  QL  can  Network 
without  TI2,  but  TK2  helps  a  lot. 

The  lain  thing  is,  we  have  this  at  our  finger  tips, 
without  spending  hundreds  of  dollars.  The  QL  was,  and  is, 
far  ahead  of  its  tiie,  and  does  not  get  the  credit  it 
deserves.  §§§ 


-FORMAT  TO  894/900  SECTORS?  =  UH? 

Did  you  ever  coie  across  an  80  track  disk  that  looked 
like  the  above?  This  does  not  lean  the  disk  is  no 


Soie  software  lanufacturers  fonat  a  disk  in  this  lanner 
to  ensure  no  bits  and  pieces  are  added  to  the  disk.  You 
can  do  the  saie  if  you  have  a  Guiana  l/F,  or  Truipcard. 
With  Cuiana  I/F,  use  the  "flp.opf9  coiiand.  Type; - 
"FLP_0PT  2,  30,  50"  Then  fonat  in  the  usual  lanner, 
and  you  will  have  a  disk  with  900  sectors.  (50  tricks  x 
18  sectors  per  track).  This  will  only  work  on  80  track 
disks.  The  SPACE  between  "com a"  and  the  T  is 
critical! 

With  Truipcard,  the  coiiand  is:-  "FLPJrack  30".  Once 
again  fonat  in  the  usual  lanner,  ending  up  with  a  disk 
fonatted  to  534/540  sectors.  This  works  with  40  or  80 
track  disks.  I  have  even  fonatted  a  disk  with  85  tracks 
(1530  sectors)  with  this  lethod,  but  I  do  not  know  what 
effect  it  would  have  on  data.  Strange  things  perhaps! 

Using  the  Cuiana  "FLPJDPT  2,  30,  50,  the  first  figure  is 
the  Security  Level,  the  second  the  Startup  Tiie,  third 
is  the  nuiber  of  tracks  to  fonat  to.  I  would  suggest 
you  not  play  with  those  first  two  figures.     To  regain 
the  original  settings,  repeat  the  coiiand  using  80  or  40 
as  desired.  Or  else  RESET.         Have  fun  ! 

HHH 


30 


SINC-LINK 


323  1/2  N .   Church  Street 
Bowling  Green,   OH  43402 
January  26,  1991 


Dear  George, 

I  got  the  latest  issue  of  Sine-Link  today,  and  am  glad  to 
say  you  and  the  club  seem  to  be  thriving. 

I  read  with  interest  Bob  Swoger  and  Larry  Kenny's  article 
on  changing  the  stepping  rate  on  a  Larken  disk.     Perhaps  that  is 
one  problem  I  have  had  with  attempting  to  use  disks  between  my 
two  drives,  though  I  have  not  attempted  to  verify  it  yet. 

However,  I  noticed  a  serious  mistake  in  the  program.  In 
line  80,  the  new  stepping  rate  is  POKEd  to  40015,  but  the  READ/ 
POKE  in  line  120  writes  over  this!     In  other  words,  the  only 
rate  this  program  will  change  to  is  the  one  in  the  DATA,  which 
is  the  30ms  rate.     The  slow  rate  will  not  prevent  someone  with  a 
faster  drive  from  reading  the  disk,  but  means  the  program  does 
not  actually  do  what  it  says. 

The  cure  is  trivial:  change  line  80  to  line  130.     Then  the 
POKE  will  occur  after  the  DATA  has  been  READ,  and  all  will  be 
well. 

Note  also  that  those  values  are  for  the  old  controller. 
The  same  numbers  will  have  different  meanings  if  you  have  one  of 
the  newer  controllers.     My  system  with  an  FD1797  from  AERCO  uses 
the  same  stepping  rates,  so  I  can't  guess  what  the  new  rates 
might  be,  though  1,  2,  3,  and  6  might  be  a  good  guess.     If  you 
have  one  of  the  new  controllers  and  an  appropriate  drive,  it 
really  won't  matter  since  it  will  still  be  slow  enough. 

Also,  R6al  Gagnon's  Sinclair  Trivia  is  missing  one  answer, 
the  one  about  the  unique  feature  of  the  2068.     Since  he  said 
2068  and  not  Spectrum,   I  can  only  presume  that  it  is  a  feature 
the  2068  has  but  the  Spectrum  does  not:  either  bank  switching, 
the  AY3-8912  sound  chip,  or  the  fact  it  has  2  joystick  ports. 

I  see  you  also  published  my  Tasword  file  compressor.  I 
hope  no  one  tries  to  write  me  at  the  address  given,  though, 
since  that  is  my  home  address.     Well,   I  suppose  my  parents  would 
forward  it  here. 

A  suggestion  for  for  a  more  elegant  way  to  handle  the  OUT 
and  delay  on  page  17  (or  anywhere  else).     We  could  make 
something  which  acts  like  an  LPRINT  to  some  extent.     Also,  the 
delay  may  need  to  check  a  different  number  on  different 
printers,  as  you  well  know  (when  I  changed  from  a  Fastext  80  to 
my  current  Panasonic,   I  did  have  to  change  numbers). 

The  routine  would  work  as  follows:  place  the  item(s)  to  be 
sent  to  the  printer  into  a  string  (I  will  use  p$).     Then  call 
the  following  subroutine: 


1000  LET  p=IN  127:    IF  p-8*INT  (p 
/8)+16*INT   (p/16)=229  THEN  GOTO 
1000 

1005  IF  LEN  p$=0  THEN  RETURN 
1010  OUT  127, CODE  p$ :   LET  p$=p$( 
2  TO) 

1015  GOTO  1000 


SINC-LINK 


The  string  for  the  original  program  would  be  as  follows: 
LET  p$=CHR$   27+"3"+CHR$   15+CHR$   15   +CHR$   27+"T0":   GOSUB  1000. 
To  me  at  least,  this  is  somewhat  more  elegant  than  the  original. 
Also,   it  will  let  you  "LPRI NT"  any  string  without  needing  to  set 
up  the  LKDOS  OPEN  #3,"lp"  command,   but  you  will  need  to  add  an 
ENTER  to  each  line   (CHR$  13). 

For  the  record,  there  are  at  least  4  signals  from  the 
printer  which  the  AERCO  interface  passes  to  the  computer  by 
IN  127.     There  are  actually  5  lines  from  the  printer  to  the 
computer  which  are  supposed  to  carry  signals,  which  are  labelled 
in  my  printer  manual  as  ACK,  PO,  BUSY,  SLCT,  and  ERROR  (the 
Fastext  80  uses  some  slightly  different  names).     The  nearest 
estimates  I  have  for  the  different  bits  are  as  follows: 

Bit  0  Not  used  (always  high) 

Bit  1  PO        Paper  Out 

Bit  2  ERROR  (high  means  no  error) 

Bit  3  ???      unknown  (possibly  SELECT  or  ACK) 

Bit  4  BUSY     (high  means  buffer  full  or  printer  off-line) 

Bits  5-7  not  used  (always  high) 

The  primary  difference  between  my  printer  and  yours  as  far 
as  IN  127  is  concerned  is  bit  3  above  -  yours  appears  to  be 
always  high,  while  mine  stays  low.     Hence,  you  get  237,  but  I 
find  229  when  I  "PRINT  IN  127".     The  line  1000  in  the  routine 
above  removes  only  bit  3,  thus  changing  your  237  to  my  229  but 
leaving  mine  alone.     You  could  use  line  1000  anywhere  you 
normally  use  IF  IN  1270237  THEN... 

Speaking  of  which,    is  the  108  you  listed  an  error?     It  does 
not  agree  with  your  previously  listed  value  of  237. 

Note  the  27,   51,  15  is  equivalent  to  27,  65,  5  if  your 
printer  has  superscripts  but  not  n/216  inch  spacing  -  some  of 
the  older  EPSON  and  compatible  printers  don't.     Also,  people 
with  IBM  Proprinter  compatible  printers  will  need  to  add  an 
additional  27,   50.     I  notice  your  printer  could  not  handle  the 
subscript  command.     The  small  print  of  the  subscript  looks  very 
good  in  compressed  pitch,  and  changing  the  spacing  makes  it  look 
almost  like  you  simply  reduced  it  to  about  60%  of  the  original. 
Using  compressed  and  reducing  the  print  spacing  to  8  lines  per 
inch  is  not  as  good  looking,  but  will  do  in  a  pinch. 

Oh,   if  I  got  a  red  face  every  time  I  made  a  mistake,  people 
would  think  I  had  a  constant  sunburn.     In  my  line,  you  discover 
mistakes  are  unavoidable,  and  try  to  correct  them  as  quickly  as 
possible.     So  you  will  have  to  forgive  me  my  bad  habit  of 
jumping  on  any  error  I  see,  as  I  expect  people  to  jump  on  my 
errors . 

Here  is  a  list  of  the  various  values  I  get  from  my  printer 
for  various  printer  conditions,  along  with  my  interpretations 
thereof : 

Code  Printer  State  Interpretation 
225  Printer  Off  All  lines  low 

229  Printer  Ready  Line  2  high  (no  error) 

231  Paper  Out/Online      Lines  1  and  2  (paper  out,  no  error) 
241  Offline  Line  4  high  (Busy  and  error) 


SINC-LINK 


243  Paper  Out/Offline  Lines  1  and  4  (Busy,  error,  and  PO) 
245  Printer  Busy  Lines  2  and  4   (Busy  and  no  error) 


Presumably,  your  printer  may  have  8  added  to  most  of  these. 
Additionally,   I  believe  the  Fastext  80  does  not  possess  a  non- 
error  paper-out  condition.     Therefore,  you  would  not  have  a  231 
or  equivalent.     There  are  other  differences,   particularly  in  the 
SELECT  line,  but  from  these  values  I  suspect  that  line  is  not 
available.     I  still  don't  know  what  line  3  is,  which  your 
printer  has  high  and  mine  low.     It  isn't  the  SELECT  line,  but 
perhaps  it  is  some  line  not  used  on  either. 

I  did  not  get  to  mail  this  last  week  -  I  misplaced  the  copy 
I  had  printed,  and  am  just  about  to  re-print  it.  Take  care,  and 
I  will  write  you  again  later.  Peace! 


Sincerely, 


CLEAN  SCREEN 

I  came  across  this  'letter  to  the 
editor1  in  the  Aug   "85  issue  of  YOUR 
COMPUTER.  This  question  and  answer  may 
be  of  interest  to  many  of  our  members. 
It  also  works  on  the  TS2068.  GFC 

"I  have  written  several  games  for 
the  Spectrum,  in  which  I  load  a 
complete  picture  (saved  as  Screens) 
into  the  computer,  so  it  can  sit  there 
while  the  main  program  is  loading. 
However,   I  don't  want  the  loading 
message  of  the  second  program  to 
obliterate  parts  of  the  picture  which 
is  on  the  screen.   I  know  I  can 
overcome  this,  to  some  extent,  by 
controlling  the  PAPER  and  INK  colours 
of  the  loading  message,  but  this  puts 
some  restrictions  on  the  original 
Screen$  picture.   Is  there  a  better 
way  ? 


A.  Steve  Dempster,  of  Littleworth, 
Stafford,  has  discovered  a  very  good 
way  of  solving  this  problem.  To 
prevent  the  filename  from  obstructing 
your  Screens,  first  PEEK  23570.  Note 
down  the  answer  you  get.  Next,  after 
the  Screens  has  loaded,  have  your 
loading  routine  POKE  23570,16.  After 
the  main  program  has  loaded,  POKE 
23570  with  the  original  number. 


SINC-LINK 


5  REM     Listing  entered  and 
modified  for  the  Larken  System 
by  G.  Chambers, 

10  POKE  23658,0s  CLS  :  PRINT  A 
T  2,  10; " IMAGE  EDIT" '  ' "Your  Compu 
ter  April  1985,  p  135";  "'TAB  6/ 
"Menus"  '  '  "1 1 2/3/ii  Load  Screen" 
'  i  "S  Start  Editor"' ' "Q 

Quit" 

15  PRINT  '"6  Return  to 

Basic" ' ' "0  Clear  Screen 

,ii  i  iiq 1 9  OVER /OVER lap  Black 

a 

17  PRINT   "'hi  Help" 
20  IF  INKEY$="q"   THEN  STOP 
30  IF  INKEY$="s"   THEN     GO  TO  1 

00 

35  IF  INKE Y$="h"  THEN     GO  TO  1 

000 

41   LET  c^CODE  INKEY$s    IF  c>^8 
AND  c<53  THEN     LET  sc=( CODE  INKE 
r$)~U9:    INPUT  "Input  Full  Screen 
Name  ";n$s  RANDOMIZE  USR  100s  L 
OAD  n$C0DE  sc*61M+H0000s   GO  TO 
10 

50  GO  TO  20 

WO  CLS  :   RANDOMIZE  USR  23296s 
PRINT  #0;"Save  Image  Y/N  ?  " 

110   IF  INKE Y$="y"  THEN     INPUT  " 
Name  ?   ";n$s  RANDOMIZE  USR  100s 
SAVE  n$SCREEN$  s   GO  TO  10 

120  IF  INKE Y$="n"   THEN     GO  TO  1 

0 

130  GO  TO  110 
1000  CLS  s  PRINT  TAB  12; "IMAGE  E 

DIT" 

1010  PRINT  ' "  Have  you  ever  wish 
ed  to  comb ine ind iv idual  screen$. 
This  is  difficult   in  Basic 

as  you  cannotmerge  two  screens  o 
r  load  one      with  OVER  on," 
1020  PRINT  '"     This  program,    I  ma 
ge  Edit,    letsyou  combine  picture 
s.  " 

10U-0  PRINT  ' "  You  will  be  pres 
ented  with  a  menu.  If  you  want  t 
o  combine  2,  3,  or  4  images,  I oa 
d  them  into  different  SCREENS, 
Press  keys  1  to  4  in  turn  to  I oa 
d  the  des  iredscreens  into  memory 
.   When  you      have  loaded  all  the 

desired  screens,   press  the 

S  key  to  start  the  machine  c 

ode  program. " 


1050  PAUSE  0s  CLS  s  PRINT  "  Th 
ere  are  two  different  ways  of  co 
mbining  images,  using  the  m/c  c 
ommands  OR  or  XOR. " 
1060  PRINT  ' "  'XOR'  puts  the  ima 
ges  together  the  same  way  as  the 
Basic  command  OVER.  Where 

there  is  an  overlap,  a  space  is 
made.    'OR'     adds  the   images  com 
pletely,  leaving  the  overlap 

black.  When  using  the  m/c  progr 
am,  press  1,  2,  3,  or  4  to  put  a 
n  image  on      the  screen.    It  will 

be  added  to  whatever  is  on  the 
screen  according  to  the  mo 

de  XOR  or  OR. " 

1070  PRINT  ' "     When  returning  to 
the  program  you  will  be  given  t 
he  opportun  i-ty  of  Saving  the  co 
mposite  or       loading  more  images 

a 

1080  PAUSE  0s  CLS  s  PRINT  '"'  I 
t  is  possible  to  create  some  oth 
er  effects  by  comb inat ions  oft  he 
two  modes.  For  example,  you  can 
subtract  an  image  from  what  is 
already  on  the  screen  by  add 
ing  it  first  in  OR  mode,  then  in 
XOR  mode, " 

1090  PRINT  "'  When  comb  in  ing  pi 
ctures,  colours  are  ignored 

as  they  would  be  jumbled  wh 

en  combined ,       The  final   image  i 
s  Saved  as      -black  on  white" 
1100  PRINT   'TAB  6; ************** 
**  a 

1110  PAUSE  0s   GO  TO  10 

8999  STOP 

9000  RANDOMIZE  USR  100s  SAVE  "im 
age,B1"  LINE  9020 

9010  STOP 

9020  BORDER  7s   PAPER  7s    INK  0s  C 
LEAR  39999s   RANDOMIZE  USR   100s  L 
OAD  " image, C1 "CODE  23296s  GO  TO 
10 


SINC -LINK 


5B00 

LD  B,247; 

.<i3298 

5B02 

LD  C, 254; 

23300 

5B04 

LD  Ay  B 

23301 

5B05 

IN  Ar  CO 

JL.  w  O  v  O 

5B07 

AND  1; 

5B09 

JR  Z, 23360 

Or  f 

23307 

5B0B 

LD  A,  B 

23308 

5B0C 

IN  A,  CO 

23310 

5B0E 

AND  2; 

ii33 1 2 

5B10 

JR  Z, 23383 

hjJQ 

23314 

5B12 

LD  A,  B 

23315 

5B 1 3 

IN  A,  CO 

23317 

5B 1 5 

AND  4; 

LA 

^.o3 1  ^ 

5B17 

JR  Z, 23406 

5B19 

LD  A,  B 

5B1A 

IN  A,  CO 

5B1C 

AND  8  *, 

r 

-roue 

2332fc> 

5B1E 

JR  Z, 23430 

23328 

5B20 

LD  B,239; 

23330 

5B22 

LD  A,B 

23331 

5B23 

IN  A,  CO 

23333 

5B25 

AND  16$ 

23335 

5B27 

RET  Z 

23336 

5B28 

LD  A,  B 

23337 

5B29 

IN  A,  CO 

23339 

5B2B 

AND  4; 

23341 

5B2D 

JR  Z, 23468 

23343 

5B2F 

LD  A,  B 

23344 

5B30 

IN  A,  CO 

23346 

5B32 

AND  2j 

2334S 

5B34 

JR  Z, 23476  ' 

23350 

5B36 

LD  A,B 

23351 

5B37 

IN  A,  CO 

5B39 

AND  1; 

\ 

5B3B 

CALL  Z, 2214 

v  / 

5B3E 

JR  23296 

o^e  23360 

5B40 

LD  DE, 16384 

23363 

5B43 

LD  HL , 40000 

23366 

5B46 

LD  BC,6144 

23363 

5B49 

LD  A, CDE) 

23370 

5B4A 

CALL  23454  * 

23373 

5B4D 

LD  CDE), A 

23374 

5B4E 

INC  DE 

23375 

5B4F 

INC  HL 

23376 

5B50 

DEC  BC 

23377 

5B5 1 

LD  A,  B 

23378 

5B52 

OR  C 

23379 

5B53 

JR  NZ, 23369 

JR  23296  «>1 

two  23383 

5B57 

LD  DE, 16384 

23386 

5B5A 

LD  HL, 46144 

5B5D 

LD  BC,6144 

5B60 

LD  A, CDE) 

23393 

5B61 

CALL  23454 

23396 

5B64 

LD   CDE), A 

23397 

JDDJ 

INC  DE 

23398 

5B66 

INC  HL 

23399 

5B67 

DEC  BC 

23400 

5B68 

LD  A,B 

23401 

5B69 

OR  C 

23402 

5B6A 

JR  NZ, 23392 

23404 

5B6C 

JR  23296  51e 

tfo>ree  23406 
23409 
23412 
23415 
23416 
23419 
23^20 
2342 1 
23422 
23423 
23424 
23425 
23427 

23430 
23433 
23436 
23439 
23440 
23443 
23444 
23445 
23446 
23447 
23448 
23449 
23451 


•yv 


5B6E  LD  DE,  16384 
5B71   LD  HL, 52288 
5B74  LD  BC,6144 
5B77  LD  A, CDE) 
5B78  CALL  23454 
5B7B  LD   CDE), A 
SB7C   INC  DE 
5B7D   INC  HL 
5B7E  DEC  BC 
5B7F  LD  A, B 
5B80  OR  C 
5B81   JR  NZ, 23415 
5B83  JP  23296  ® 

5B86  LD  DE, 16384 
5B89  LD  HL, 58432 
5B8C  LD  BC,6144 
5B8F  LD  A, CDE) 
5B90  CALL  23454  - 
5B93  LD   CDE), A 
5B94   INC  DE 
5B95  INC  HL 
5B96  DEC  BC 
5B97  LD  A, B 
5B98  OR  C 
5B99  JR  NZ, 23439 
5B9B  JP  23296 


hwlW  23454  5B9E  PUSH  AF 

23455  5B9F  LD  A, C23681 ) 
23458  5BA2  BIT  0,A 
23460  5BA4  JR  Z, 23465-  ' 

23462  5BA6  POP  AF 

23463  5BA7  OR  CHL) 

23464  5BA8  RET 

-SuW  '  23465  5BA9  POP  AF 

23466  5BAA  XOR  CHL) 

23467  5BAB  RET 

<    23468  5BAC  LD  A,0j 

23470  5BAE  LD  C 23681), A 
23473  5BB1   JP  23296 

23476  5BB4  LD  A,  1 ; 
23478  5BB6  LD  C23681),A 
23481   5BB9  JP  23296 

23484  5BBC  NOP 

23485  5BBD  NOP 


.CI 


100  REM  IMAGE  EDIT 

The  code  for  the 
Image  Edit  program 

105  REM     **  For  the  TS2068** 

To  use  on  the  Spectrum 
POKE  23356,107;  POKE  23357,13 

110  RESTORE  120:  FOR  n=23296  TO 
23*86:  READ  a:  POKE  n,a:  NEXT  n 

120  DATA  6,  2*7,  1*,  25*,  120,  237 

121  DATA  120,230,1  ,*0, 53, 120 

122  DATA  237,  1 20,  230,  2,  *0,  69 

1 23  DA TA  1 20, 237,  1 20, 230, *, *0 
12*  DATA  85,  120,237,  120,230,8 

125  DATA  *0,  102,6,239,  120,237 

1 26  DA TA   1 20,  230,  1 6,  200,  1 20,  237 


1 20,  230,  *,  *0,  1 25, 1 20 
237, 120,  230,  2,  *0,  126 
120,237,  120,230,  1,20* 
166,8,2*,  192,  17,0 
6*,  33,  6*,  156,  1,0 
2*,  26,  205,  158,91  ,  18 
19,35,11 ,  120,  177,32 
2**,  2*,  169,  17,0,6* 
33,6*,  180,  1,0,2* 
26,205,  158,91,  18,  19 
35,11,  120,  177,32,2** 
2*,  1*6,  17,0,  6*,  33 
6*,  20*,  1,0,  2*,  26 
205,  158,91,  18,  19,35 
11,120,  177,32,2**,  195 
0,91,  17,  0,6*,  33 
6*,  228,  1,0,  2*,  26 
205,  158,91,  18,  19,35 
11,  120,  177,32,2**,  195 
0,91 ,2*5,58,  129,  92 
203,71  ,*0,  3,  2*1 ,  182 
201,2*1,  17*, 201 ,62,0 
50,  129,  92,  195,0,  91 
62,  1,50,  129,92,  195 
0,91 ,0,0,0,0 

1 5,5; "Data  has  bee 
Press  a  key  to  se 
and  save  to 


127  DATA 

128  DATA 

129  DATA 

130  DATA 

131  DATA 

132  DATA 

133  DATA 
13*  DATA 

135  DATA 

136  DATA 

137  DATA 

138  DATA 

139  DATA 
1*0  DATA 
1*1  DATA 
1*2  DATA 
1*3  DATA 
744  DATA 
1*5  DATA 
1*6  DATA 
1*7  DATA 
1*8  DATA 
1*9  DATA 

150  DATA 

151  DATA 
310  PRINT  AT 

n  entered"  ' ' " 
feet  drive, 
disk.  " 

320  PAUSE  0:   INPUT  "Drive  #  ";d 
rv:  RANDOMIZE  USR  100:  GO  TO  drv 
:  RANDOMIZE  USR  100:  SA\/E  "image 
.01 "CODE  23296,  188 
8990  STOP 

9000  RANDOMIZE  USR  100:  SAVE  " im 
age.Bx" 


ALFA-BYTES  #1 

by  the  Tonkin  Reader 

There  has  recently  been  a  lot 
of  discussion  about  what  will 
and  will  not  be  compatible 
carry-over  programs  from  the 
Spectrum  to*  the  TS2068.  The 
determining  factor  seems  to  lie 
in  the  exclusive  use  of  fully 
documented  ROM  calls.  As  any 
good  programmer  knows,  Basic, 
which  we  find  in  ROM,  is  an 
understandable  combination  of 
assembly  language  instructions 
called  MNEMONICS,  some  of  the 
most  common  of  which  are  JNP, 
BRA,  STA,  BCC,  LEA,  ETC 
(et  cetera) .  The  following  are 
a  few  of  the  lesser  known 
instructions  ,that  are  present 
in  most,  if  not  all  computers. 

ARG: Agree  to  Run  Garbage 

(definitely  the 

most  often  used 

euphemism  among  users) 
DDS: Damage  Disk  and  Stop 

(who  hasn't  seen  this 

one?) 

VMB: Verify  and  make  bad 

(precedes  ARG  in 

operation) 
SDJ:Send  all  Data  to  Japan 

(ever  wonder  where  it 

went?) 

TTC: Tangle  Tape  and  Crash 
(created  just  for  CCR 
users) 

YII: Yield  to  Irresistible 
Impulse 

(occurs  after  VMB/ARG; 
results  in  purchase 
of  new  case) 
KFP: Kindle  Fire  in  Printer 

(need  that  report  when?) 
LNM: Launch  Nuclear  Missiles 
(you  were  on  WHAT  BBS?) 

It's  pretty  certain  that  most 
of  us  have  experienced  at  least 
one  of  the  above,  and  this  is 
by  no  means  an  exhaustive 
listing.  Watch  next  time  as 
ALFA-BYTES  brings  you 

additional  tid-BYTES  from  the 
Tonkin  Reader. 

from  Nite  Times  News 


SINC-LINK 


35 


I  have  some  SINCLAIR  magazines  for  sale.  Shipping  is  included  with 
the  price  quoted  for  each  Package. 

Sinclair  Magazine  ail  originals,  no  copies 

TS  HORIZONS  (USA. 2068, ZX81)  no.  1,2.3.4.5,6    $  4.00 

BASIC  COMPUTER  NEWSLETTER  (USA.zx81)  vol  1  no.  2.3.4.5   ,  $  2.00 

SINCLAIR  PROJECT  (british.  hardware  oriented .  ZX81 .  spectrum ) 

dec/jan  83  to  aug/sept  84  (10  issues)   __  $7.50 

SINCLAIR  PROGRAMS  (british.  40  programs  to  type  in  in  each 

issue.  ZX81. spectrum) 
jan/feb  83.  may  84.  june  83   $  3.00 

PERSONAL  COMPUTER  (Italian  magazine,  excellent  coverage  for 

Spectrum  and  QL) 
no.  1  to  19  ,  $20.00 

SINCLAIR  USER  (big  british  magazine,  spectrum,  few  OX) 

jan  85  to  dec  85   $15.00 

SINCLAIR  USER  (big  british  magazine,  spectrum) 

april  83.  may  83.  jul  S4  to  dec  84   $12.00 

SINCLAIR  USER  (big  british  magazine,  spectrum,  few  qi) 

may  86  to  nov  86  _   $12.00 

OX  USER  (british.  QL  only) 

feb  85.  apr  85  to  nov  85  ,  $15.00 

UPDATE  (USA.  2068  and  OX) 

oct  88.  jan  89  to  oct  90  (total  9  nos.)  .  $10.00 

PERSONAL  COMPUTER  WEEKLY  (british,  excellent  coverage  for 

spectrum  and  QL,  weekly  magazine) 
vol.  4  no.  25  to  51.  except  34  (total  26  issues)    $25.00 

PERSONAL  COMPUTER  WEEKLY  (british.  excellent  coverage  for 

spectrum  and  QL. weekly  magazine) 
vol.  5  no.  1  to  36  and  38  (total  37  issues)  __  $35.00 

SUM  (USA.  2068.  few  X) 

vol.  3  no. 6  to  9.  vol.  4  no.  1  to  6  (10  issues)    $  6.00 

ZX  COMPUTING  (british.  spectrum  and  QL) 

apr/ may  84.  apr  86  to  jul  86.  sep  36  to  dec  86 

jan  87  and  mar  67  to  jun  87    (13  issues)    $25.00 

TIMEX-SINOAIR  USER  (USA.  ZX81) 

vol.  1  nos.  1.2.3.4.6   $  5.00 

SYNC  (USA.  ZX81) 

vol.  2  no. 3-6.  vol.  3  no. 1-2  .    $  4.00 

SINCLAIR  a  WORLD  (british,  QL  only) 

dec86.  jan67  to  feb87.  jun86  to  nov86  (9  issues)   $15.00 

Real  Gagnon 

8286  St-Hubert  -1Zl  ,fl1 

Montreal  (Quebec)  514-381-6264 

H2P  1Z3 

SINC-LINK 


Jan/ Feb  1991 

Jan  15,  1991 

Dear  Out-of-Town  Members, 

I'm  not  sure  that  I  can  fill  a  page 
this  time.  Maybe  it's  because  of  the 
Chr i st mas  season,    I  don't  know. 

But  I'll  start  off  with  a  plea  from 
our  news  I etter  editor.  He  has  a 
Portugeuse  disk  system  designed  for  the 
2068.   It  was  marketed  by  English 
M icroconnect  ion  and /or  the  Zebra  people. 
Jeff  asked  me  if  any  of  the  OOT  members 
might  have  such  a  system.    If  so,  would 
you  look  at  the  innards  of  the  Interface 
box.   That  is  the  one  with  the  reset 
button  on  it.   THere  are  two  chips  in 
this  box,  and  on  both  Jeff's  and  another 
system  he  has  looked  at  the  code 
markings  on  these  two  chips  have  been 
carefully  scraped  off.  Jeff  would  like 
to  know  what  what  these  chips  are.  The 
part  number  is  sufficient,    if  it  is 
showing.   Though,   I  suppose  that  if 
anyone  had  the  schematic  for  this 
system,    it  would  show  this  informat  ion. 

From  looking  at  a  recent  issue  of 
T IMELINEZ,  pub  I  i shed  by  American  Micro 
Systems,   I  see  that  they  are  going  to 
d iscont inue  pub  I i cat  ion.  All  TIMELINEX 
ubscr ibers  are  goinq  to  have  their 
Subscription  filled  by  receiving  issues 
of  the  SNUG  newsletter,  ROUNDUP. 

In  this  issue  of  T IMELINEZ,  Jul -Dec 
1990,   there  is  an  advert  by  the 
CAMBRIDGE  GROUP,    inviting  club  members 
to  become  what  they  term  " part-t ime 
sales  consultants",   to  sell  the  Z88 
computer  on  campus  at  colleges  and 
un i vers  it ies.  No  pricing  is  given.  They 
give  a  phone  number  to  call,  800-458 
9008.  Ask  about  becoming  a  Cambr  idge 
Colleague.  Caution  though;   I  just 
noticed  that  this  advert,    in  the  form  of 
a  letter,   has  a  date  of  January  19, 
1990;  a  year  old. 

Also  in  this  issue  is  a  series  of 
documents  put  out  by  the  District  of 
Maine  Bankruptcy  Court.    They  pertain  to 
an  agreement  reached  between  SSI 
Computer  Systems,    Inc.,   and  a  couple  of 
banks  that  are  owed  money.    It  appears 
there  is  an  agreement  between  the 
parties  to  let  SSI  continue  to  sell 
their  product  contingent  on  rem itt ing 
$150  per  item  to  the  banks.   What   is  the 
product,  you  ask?    Well  none  other  than 
he  Z88  computer.  Seems  they  have  about 
.700  Z88's  to  sell,  plus  another  273 
refurb  i shed  units,   and  345  failed 
un its. 

There  is  also  a  phrase  "d/b/a 
CAMBRIDGE  NORTH  AMERICA",    in  one  of  the 
documents;   it  is  unclear  to  me  just  what 
the  connection  is. 


While  we're  on  the  subject,   there  is 
an  advert   in  the  INDIANA  T/S  UG 
news  I etter .    It  is  by  MACro  Systems  and 
offers  a  2-pound  computer  called  the 
"Personal  Ass istant ".  Special  price  for 
a  32K  system,  $325  US;   for  a  2  Meg 
system,  $1225.   You  can  also  buy 
add  it ional  RAM  cartridges;  starting  at 
128K  for  $75,   up  to  1024K  for  $495. 
EPROM  cartridges  are  said  to  be  coming 
1st  quarter  of  1991  (haven't  I  heard 
that  before?),   for  about  the  same 
pricing.   If  you  haven't  guessed,  a 
squiggle  at  the  bottom  of  the  page  says 
this  is  the  Z88.     MACroSystems  E.T.C., 

1207  South  State  Street,  Salt  Lake 
City,   Utah  84111.     tel.  801-575  8855. 

Anybody  want  an  AMDEK  disk  drive 
system.   Two  3"  drives  along  with  the 
power  supply,  all  contained  in  a  case. 
Along  with  about  twenty  3- inch  disks. 
This  belongs  to  a  former  member,  Greg 
Lloyd,   who  used  it  on  his  Larken  system. 
They  happen  to  be  at  my  place.  I  have 
ment  ioned  them  before  in  the  news  I etter, 
but  they  are  still  around.   I  think  I 
told  Greg  they  vtere  worth  more  than  what 
it  turned  out  Timex  owners  wished  to 
pay!!  Well,   that's  how  it  goes.  Actually 
I  think  the  disks  would  be  a  good  buy 
for  anyone  who  already  has  such  a 
system.    You  get  a  goodly  supply  of  disks 
plus  a  backup  to  your  disk  system.  Why 
don't  I  use  it?  Well,   I  have  enough 
complications  already,   with  DS  and  QD 
drives!!  I  used  to  have  a  system  like 
this,   and  I  must  say,    it  worked 
beautifully.  Drop  me  a  line  if  you  are 
interested. 

Got  my  income  tax  forms  today,  and 
so  I  took  a  look  at  them  to  see  what 
changes  would  be  necessary  to  my  income 
tax  program.   There  are  quite  a  few  minor 
changes.   The  program  is  only  useful  for 
Canad ians,  and  then  it  is  oriented  more 
to  Ontario  taxpayers,  since  it  includes 
the  Provincial   income  tax.  However,  if 
anyone  is  interested  in,  ask. 

I  don't  think  there  has  been  any 
add  it  ions  to  the  Larken  library.  We  are 
up  to  disk  #40,    if  that  says  anything. 
I  think  that's  where  we  were  a  couple  of 
months  ago.   The  tape  libraries  are 
pretty  stat  ic  these  days  also.   I  think 
there  is  probably  more  programs  in  those 
libraries  than  anyone  can  cope  with,  so 
there  is  not  much  urgency  to  adding  to 
them.    I  can't  tell  you  much  about  the  QL 
library;  you'll  have  to  ask  the  QL 
I ibrar ian. 

S incere I y,         George  Chambers